diff --git a/Resources/public/apps/mainModule/services/searchService.js b/Resources/public/apps/mainModule/services/searchService.js index 683de03..4d92783 100644 --- a/Resources/public/apps/mainModule/services/searchService.js +++ b/Resources/public/apps/mainModule/services/searchService.js @@ -7,16 +7,33 @@ angular.module('mainModule').service('searchService', ['$q', '$http', 'busServic function ($q, $http, busService) { 'use strict'; - var socket; - var token = null; + var socket = null; + + function getAuth(reauth) { + var deferred = $q.defer(); + + var url = 'api/auth/search' + (reauth ? '/reauth' : ''); + + $http.get(url) + .success(function (data) { + deferred.resolve(data.token); + }) + .error(function (data, status) { + deferred.reject(status); + }); + + return deferred.promise; + } /** * Connect to the web-socket. * - * @param deferred - * The is a deferred object that should be resolved on connection. + * @param token + * The connection token. */ - function getSocket(deferred) { + function getSocket(token) { + var deferred = $q.defer(); + // Get connected to the server. socket = io.connect(window.config.search.address, { 'query': 'token=' + token, @@ -27,21 +44,30 @@ angular.module('mainModule').service('searchService', ['$q', '$http', 'busServic // Handle error events. socket.on('error', function (reason) { if (reason === 'Not authorized') { - // Try reauth - $http.get('api/auth/search/reauth') - .success(function (data) { - token = data.token; - getSocket(deferred); - }) - .error(function (data, status) { + getAuth(true).then( + function success(token) { + getSocket(token).then( + function success(socket) { + deferred.resolve(socket); + }, + function error(reason) { + busService.$emit('log.error', { + 'cause': reason, + 'msg': 'Search socket error.' + }); + deferred.reject(reason); + } + ); + }, + function error(reason) { busService.$emit('log.error', { - 'cause': status, - 'msg': 'Search socket error. Could not reauthorize.' + 'cause': reason, + 'msg': 'Search socket error.' }); - deferred.reject(status); - }); - } - else { + deferred.reject(reason); + } + ); + } else { busService.$emit('log.error', { 'cause': reason, 'msg': 'Search socket error.' @@ -51,7 +77,7 @@ angular.module('mainModule').service('searchService', ['$q', '$http', 'busServic }); socket.on('connect', function () { - deferred.resolve('Connected to the server.'); + deferred.resolve(socket); }); // Handle disconnect event (fires when disconnected or connection fails). @@ -61,6 +87,8 @@ angular.module('mainModule').service('searchService', ['$q', '$http', 'busServic // request will be queued and send all at once... which could give some // strange side effects in the application if not handled. }); + + return deferred.promise; } /** @@ -73,27 +101,39 @@ angular.module('mainModule').service('searchService', ['$q', '$http', 'busServic // Try to connect to the server if not already connected. var deferred = $q.defer(); - if (socket === undefined) { - if (token !== null) { - getSocket(deferred); - } - else { - $http.get('api/auth/search') - .success(function (data) { - token = data.token; - getSocket(deferred); - }) - .error(function (data, status) { - busService.$emit('log.error', { - 'cause': status, - 'msg': 'Authentication (search) to search node failed (' + status + ')' - }); - deferred.reject(status); - }); - } + if (socket === null) { + getAuth().then( + function success(token) { + getSocket(token).then( + function success(socket) { + deferred.resolve(socket); + }, + function error() { + deferred.reject('Error connecting to search service.'); + } + ); + }, + function error() { + getAuth(true).then( + function success(token) { + getSocket(token).then( + function success(socket) { + deferred.resolve(socket); + }, + function error() { + deferred.reject('Error connecting to search service.'); + } + ); + }, + function error() { + deferred.reject('Error re-authenticating to search service.'); + } + ); + } + ); } else { - deferred.resolve('Connected to the server.'); + deferred.resolve(socket); } return deferred.promise; @@ -165,23 +205,31 @@ angular.module('mainModule').service('searchService', ['$q', '$http', 'busServic 'error': 'error-' + query.uuid }; - connect().then(function () { - socket.once(query.callbacks.hits, function (hits) { - busService.$emit(message.callbacks.hits, hits); - }); + connect().then( + function success(socket) { + socket.once(query.callbacks.hits, function (hits) { + busService.$emit(message.callbacks.hits, hits); + }); + + // Catch search errors. + socket.once(query.callbacks.error, function (error) { + busService.$emit('log.error', { + 'cause': error.message, + 'msg': 'Search error.' + }); - // Catch search errors. - socket.once(query.callbacks.error, function (error) { + busService.$emit(message.callbacks.error, error.message); + }); + + socket.emit('search', query); + }, + function error() { busService.$emit('log.error', { 'cause': error.message, 'msg': 'Search error.' }); - - busService.$emit(message.callbacks.error, error.message); - }); - - socket.emit('search', query); - }); + } + ); }); } -]); \ No newline at end of file +]); diff --git a/Resources/public/assets/build/os2displayadmin.min.js b/Resources/public/assets/build/os2displayadmin.min.js index 2185399..244e172 100644 --- a/Resources/public/assets/build/os2displayadmin.min.js +++ b/Resources/public/assets/build/os2displayadmin.min.js @@ -3,4 +3,4 @@ * @version v2.0.0 * @link https://github.com/os2display */ -if(angular.module("busModule").service("busService",["$rootScope","$window",function(n,e){"use strict";e.rootScopes=e.rootScopes||[],e.rootScopes.push(n),this.$emit=function(t,i){angular.forEach(e.rootScopes,function(e){e.$emit(t,i)})},this.$on=function(e,i){return n.$on(e,function(e,t){i.apply(n,[e,t])})},this.$once=function(e,i){var o=n.$on(e,function(e,t){o(),i.apply(n,[e,t])})}}]),!window.config||!window.config.itkLog)throw"itkLog Exception: window.config.itkLog does not exist";angular.module("logModule").service("logService",["busService","$http","$timeout","$log",function(o,n,e,s){"use strict";var r=window.config.itkLog;function a(e,t,i,o){return{type:e,date:new Date,timeout:t,message:o,cause:i,stacktrace:printStackTrace()}}o.$on("log.error",function(e,t){if("none"!==r.logLevel){var i=a("error",t.timeout,t.cause,t.msg);o.$emit("messages.add",i),r.logToConsole&&s.error(i),r.errorCallback&&n.post(r.errorCallback,i)}}),o.$on("log.log",function(e,t){if("all"===r.logLevel){var i=a("log",t.timeout,t.cause,t.msg);o.$emit("messages.add",i),r.logToConsole&&s.log(i)}}),o.$on("log.info",function(e,t){if("all"===r.logLevel){var i=a("info",t.timeout,t.cause,t.msg);o.$emit("messages.add",i),r.logToConsole&&s.info(i)}}),o.$on("log.warn",function(e,t){if("all"===r.logLevel){var i=a("warn",t.timeout,t.cause,t.msg);o.$emit("messages.add",i),r.logToConsole&&s.warn(i)}})}]),angular.module("mainModule").controller("BaseController",["$scope","userService","$location",function(t,i,e){"use strict";function o(e,t){return e&&e.api_data&&e.api_data.permissions&&e.api_data.permissions[t]}t.baseCurrentUser=i.getCurrentUser(),t.requireRole=function(e){return i.hasRole(e)},t.hasRole=function(e,t){return i.hasRole(e,t)},t.baseCanRead=function(e){return o(e,"can_read")},t.baseCanUpdate=function(e){return o(e,"can_update")},t.baseCanUpdateRoles=function(e){return o(e,"can_update_roles")},t.baseCanDelete=function(e){return o(e,"can_delete")},t.baseCanCreate=function(e){return o(t.baseCurrentUser,"can_create_"+e)},t.baseCanAdd=function(e){return o(t.baseCurrentUser,"can_add_"+e)},t.baseRemoveElementFromList=function(e,t,i){var o=e.findIndex(function(e){return t[i]===e[i]});return void 0!==o?e.splice(o,1):null}}]),angular.module("mainModule").controller("BaseApiController",["busService","$scope","$controller","$timeout","$q",function(s,e,t,i,r){"use strict";t("BaseController",{$scope:e});var a=[];function h(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}e.getEntity=function(e,t){var i=r.defer(),o=h();return a.push(s.$on("BaseApiController.returnEntity."+o,function(e,t){t&&t.error?i.reject(t.error):i.resolve(t)})),s.$emit("apiService.getEntity",{type:e,returnEvent:"BaseApiController.returnEntity."+o,data:t}),i.promise},e.getEntities=function(e){var i=r.defer(),t=h();return a.push(s.$on("BaseApiController.returnEntities."+t,function(e,t){t&&t.error?i.reject(t.error):i.resolve(t)})),s.$emit("apiService.getEntities",{type:e,returnEvent:"BaseApiController.returnEntities."+t}),i.promise},e.updateEntity=function(e,t){var i=r.defer(),o=h();return a.push(s.$on("BaseApiController.updateEntity."+o,function(e,t){t&&t.error?i.reject(t.error):i.resolve(t)})),s.$emit("apiService.updateEntity",{type:e,returnEvent:"BaseApiController.updateEntity."+o,data:t}),i.promise},e.createEntity=function(e,t){var i=r.defer(),o=h();return a.push(s.$on("BaseApiController.createEntity."+o,function(e,t){t&&t.error?i.reject(t.error):i.resolve(t)})),s.$emit("apiService.createEntity",{type:e,returnEvent:"BaseApiController.createEntity."+o,data:t}),i.promise},e.deleteEntity=function(e,t){var i=r.defer(),o=h();return a.push(s.$on("BaseApiController.deleteEntity."+o,function(e,t){t&&t.error?i.reject(t.error):i.resolve(t)})),s.$emit("apiService.deleteEntity",{type:e,returnEvent:"BaseApiController.deleteEntity."+o,data:t}),i.promise},e.baseApiRequest=function(e,t,i){var o=r.defer(),n=h();return a.push(s.$on("BaseApiController.baseApiRequest."+n,function(e,t){t&&t.error?o.reject(t.error):o.resolve(t)})),s.$emit("apiService.request",{method:e,url:t,returnEvent:"BaseApiController.baseApiRequest."+n,data:i}),o.promise},e.$on("$destroy",function(){for(var e in a)a[e]()})}]),angular.module("mainModule").service("apiService",["busService","$http",function(n,s){"use strict";function i(e,t,i,o){t+=(t.indexOf("?")<0?"?":"&")+"locale=da",s({method:e,url:t,data:o}).then(function(e){n.$emit(i,e.data)},function(e){401!==e.status&&n.$emit(i,e.data)})}n.$on("apiService.request",function(e,t){i(t.method,t.url,t.returnEvent,t.data)}),n.$on("apiService.getEntities",function(e,t){i("get","/api/"+t.type,t.returnEvent)}),n.$on("apiService.getEntity",function(e,t){i("get","/api/"+t.type+"/"+t.data.id,t.returnEvent)}),n.$on("apiService.createEntity",function(e,t){i("post","/api/"+t.type,t.returnEvent,t.data)}),n.$on("apiService.updateEntity",function(e,t){i("put","/api/"+t.type+"/"+t.data.id,t.returnEvent,t.data)}),n.$on("apiService.deleteEntity",function(e,t){i("delete","/api/"+t.type+"/"+t.data.id,t.returnEvent,t.data)})}]),angular.module("mainModule").service("bodyService",["busService","$location",function(e,t){"use strict";var i=[];e.$on("$locationChangeSuccess",function(){for(var e in i)angular.element("body").removeClass(i[e]);i=[]}),e.$on("bodyService.addClass",function(e,t){angular.element("body").addClass(t),i.push(t)}),e.$on("bodyService.toggleClass",function(e,t){angular.element("body").toggleClass(t),i.push(t)}),e.$on("bodyService.removeClass",function(e,t){angular.element("body").removeClass(t)})}]),angular.module("mainModule").service("menuItemService",["busService",function(i){"use strict";i.$on("menuApp.requestSubMenuItems",function(e,t){i.$emit("menuApp.returnSubMenuItems",[{mainMenuItem:"screen",items:[{title:"Opret skærm",path:"/#/screen",classes:"create-channel",activeFilter:"/screen",group:"left",weight:2},{title:"Oversigt sub",path:"/#/screen-overview",classes:"overview-right",activeFilter:"/screen-overview",group:"right",icon:"apps",weight:3}]},{mainMenuItem:"channel",items:[{title:"Oversigt",path:"/#/channel-overview",classes:"overview-right",activeFilter:"/channel-overview",group:"right",icon:"apps"},{title:"Opret kanal",path:"/#/channel",classSuffix:"create-channel",activeFilter:"/channel",group:"left"},{title:"Delte kanaler",path:"/#/shared-channel-overview",classSuffix:"overview",activeFilter:"/shared-channel-overview",group:"left"}]},{mainMenuItem:"slide",items:[{title:"Oversigt",path:"/#/slide-overview",classes:"overview-right",activeFilter:"/slide-overview",group:"right",icon:"apps"},{title:"Opret slide",path:"/#/slide",classSuffix:"create-channel",activeFilter:"/slide",group:"left"}]},{mainMenuItem:"media",items:[{title:"Oversigt",path:"/#/media-overview",classes:"overview-right",activeFilter:"/media-overview",group:"right",icon:"apps"},{title:"Upload medie",path:"/#/media/upload",classSuffix:"create-media",activeFilter:"/media/upload",group:"left"}]}])}),i.$on("menuApp.requestMainMenuItems",function(e,t){i.$emit("menuApp.returnMainMenuItems",[{title:"Kanaler",route:"/#/channel-overview",activeFilter:"/channel",icon:"add_to_queue",weight:1},{title:"Skærme",route:"/#/screen-overview",activeFilter:"/screen",icon:"tv",weight:3},{title:"Slides",route:"/#/slide-overview",activeFilter:"/slide",icon:"dvr",weight:2},{title:"Medier",route:"/#/media-overview",activeFilter:"/media",icon:"picture_in_picture",weight:4}])}),i.$on("menuApp.requestHamburgerMenuItems",function(e,t){i.$emit("menuApp.returnHamburgerMenuItems",[{title:"Kanaler",weight:1,items:[{title:"Oversigt",route:"/#/channel-overview",activeFilter:"/channel-overview",weight:1},{title:"Opret kanal",route:"/#/channel",activeFilter:"/channel",weight:2}]},{title:"Slides",weight:2,items:[{title:"Oversigt",route:"/#/slide-overview",activeFilter:"/slide-overview",weight:1},{title:"Opret slide",route:"/#/slide",activeFilter:"/slide",weight:2}]},{title:"Skærme",weight:3,items:[{title:"Oversigt",route:"/#/screen-overview",activeFilter:"/screen-overview",weight:1},{title:"Opret skærm",route:"/#/screen",activeFilter:"/screen",weight:2}]},{title:"Administration",weight:3,permission:"super-admin",items:[{title:"Deling",route:"/#/admin-sharing",activeFilter:"/admin-sharing",permission:"super-admin",weight:1},{title:"Skabeloner",route:"/#/admin-templates",activeFilter:"/admin-sharing",permission:"super-admin",weight:2}]}])})}]),angular.module("mainModule").service("searchService",["$q","$http","busService",function(o,n,s){"use strict";var r,a=null;function h(i){(r=io.connect(window.config.search.address,{query:"token="+a,"force new connection":!0,"max reconnection attempts":1/0})).on("error",function(e){"Not authorized"===e?n.get("api/auth/search/reauth").success(function(e){a=e.token,h(i)}).error(function(e,t){s.$emit("log.error",{cause:t,msg:"Search socket error. Could not reauthorize."}),i.reject(t)}):(s.$emit("log.error",{cause:e,msg:"Search socket error."}),i.reject(e))}),r.on("connect",function(){i.resolve("Connected to the server.")}),r.on("disconnect",function(e){})}s.$on("searchService.request",function(e,t){var i={index:window.config.search.index,type:t.type,query:{match_all:{}}};void 0!==t.text&&""!==t.text&&(i.query={multi_match:{query:t.text,type:"best_fields",operator:"or",fields:t.fields,analyzer:"string_search"}}),i.sort=t.sort,void 0!==t.filter&&(i.query={filtered:{query:i.query,filter:t.filter}}),t.hasOwnProperty("pager")&&(i.size=t.pager.size,i.from=t.pager.page*t.pager.size),i.uuid=CryptoJS.MD5(JSON.stringify(i)).toString(),i.callbacks={hits:"hits-"+i.uuid,error:"error-"+i.uuid},function(){var i=o.defer();return void 0===r?null!==a?h(i):n.get("api/auth/search").success(function(e){a=e.token,h(i)}).error(function(e,t){s.$emit("log.error",{cause:t,msg:"Authentication (search) to search node failed ("+t+")"}),i.reject(t)}):i.resolve("Connected to the server."),i.promise}().then(function(){r.once(i.callbacks.hits,function(e){s.$emit(t.callbacks.hits,e)}),r.once(i.callbacks.error,function(e){s.$emit("log.error",{cause:e.message,msg:"Search error."}),s.$emit(t.callbacks.error,e.message)}),r.emit("search",i)})})}]),angular.module("mainModule").service("userService",["busService",function(i){"use strict";var o=angular.copy(OS2DISPLAY_CURRENT_USER);i.$on("userService.getCurrentUser",function(e,t){i.$emit("userService.returnCurrentUser",o)}),i.$on("userService.apiServiceReturnCurrentUser",function(e,t){o=t}),this.updateCurrentUser=function(){i.$emit("apiService.request",{method:"get",url:"api/user/current",returnEvent:"userService.apiServiceReturnCurrentUser"})},this.getCurrentUser=function(){return o},this.hasRole=function(e,t){t||(t=o);var i=Object.keys(t.api_data.roles).map(function(e){return t.api_data.roles[e]});return t&&t.api_data&&t.api_data.roles&&-1!==i.indexOf(e)},this.getCurrentUserGroups=function(e){i.$emit(e,o.groups)}}]),angular.module("mainModule").service("authHttpResponseInterceptor",["$q","$window",function(t,i){"use strict";this.responseError=function(e){if(401!==e.status)return t.reject(e);i.location.href="/logout"}}]),angular.module("datetimePicker",[]),angular.module("datetimePicker").directive("datetimePicker",["$timeout",function(r){return{scope:{config:"=",watch:"="},restrict:"A",require:"^ngModel",link:function(e,t,i,o){var n="DD/MM/YYYY HH:mm",s=null;s=e.config?e.config:{lang:"da",format:"d/m/Y H:i",scrollMonth:!1,scrollTime:!1},r(function(){o.$modelValue&&(s.value=moment(1e3*o.$modelValue).format(n)),t.datetimepicker(s),o.$formatters.unshift(function(e){return e?moment(1e3*e).format(n):""}),o.$parsers.unshift(function(e){if(""==e)return null;var t=moment(e,n);return t&&t.isValid()&&1970<=t.year()?t.unix():null}),t.bind("blur",function(){var e=moment(o.$viewValue,n);e&&e.isValid()&&1970<=e.year()?o.$modelValue=e.unix():o.$modelValue=moment().unix(),o.$setViewValue(moment(1e3*o.$modelValue).format(n)),o.$render()}),e.watch&&e.$watch(function(){return o.$modelValue},function(e){e&&(s.value=moment(1e3*e).format(n),t.datetimepicker("destroy"),t.datetimepicker(s))})})}}}]),angular.module("datetimePicker").directive("hourPicker",function(){return{restrict:"A",require:"^ngModel",link:function(e,t){t.datetimepicker({datepicker:!1,format:"G"})}}}),angular.module("datetimePicker").directive("datetimePickerText",["$timeout",function(s){return{restrict:"A",require:"^ngModel",link:function(e,t,i,o){var n="DD/MM/YYYY HH:mm";s(function(){o.$formatters.unshift(function(e){return e?moment(1e3*e).format(n):""}),o.$parsers.unshift(function(e){if(""==e)return null;var t=moment(e,n);return t&&t.isValid()&&1970<=t.year()?t.unix():null}),o.$modelValue&&(o.$setViewValue(moment(1e3*o.$modelValue).format(n)),o.$render()),t.bind("blur",function(){var e=moment(o.$viewValue,n);e&&e.isValid()&&1970<=e.year()?o.$modelValue=e.unix():o.$modelValue=moment().unix(),o.$setViewValue(moment(1e3*o.$modelValue).format(n)),o.$render()})})}}}]),angular.module("styleguideComponentsModule",[]),angular.module("styleguideComponentsModule").directive("box",function(){return{restrict:"E",transclude:!0,replace:!0,scope:{heading:"@"},template:'

{{ heading }}

'}}),angular.module("styleguideComponentsModule").directive("buttonIconLink",function(){return{restrict:"E",replace:!0,scope:{buttonLink:"@",icon:"@",click:"&"},template:''}}),angular.module("styleguideComponentsModule").directive("contentList",function(){return{restrict:"E",replace:!0,scope:{items:"=",max:"=",filter:"=",order:"="},template:'
'}}),angular.module("styleguideComponentsModule").directive("contentListItem",function(){return{restrict:"E",replace:!0,scope:{item:"="},template:'
{{ item.title }}{{ item.title }}{{ item.text }}
'}}),angular.module("styleguideComponentsModule").directive("panelMenu",["$document",function(e){return{restrict:"E",replace:!0,scope:{items:"="},link:function(t){function i(e){t.$apply(function(){t.menuOpen=!1,document.removeEventListener("click",i)})}t.menuOpen=!1,t.toggleMenu=function(){t.menuOpen=!t.menuOpen,setTimeout(function(){t.menuOpen&&document.addEventListener("click",i)})}},template:'
more_vert
'}}]),angular.module("styleguideComponentsModule").directive("popup",function(){return{restrict:"E",replace:!0,transclude:!0,template:''}}),angular.module("ikShared").factory("mediaFactory",["$http","$q","busService",function(o,n,s){"use strict";var e={getAllMedia:function(){var t=n.defer();return o.get("/api/media").success(function(e){t.resolve(e)}).error(function(){t.reject()}),t.promise},searchMedia:function(e){var i=n.defer();e.type="Os2Display\\MediaBundle\\Entity\\Media";var t=CryptoJS.MD5(JSON.stringify(e)).toString();return e.callbacks={hits:"searchService.hits-"+t,error:"searchService.error-"+t},s.$once(e.callbacks.hits,function(e,t){i.resolve(t)}),s.$once(e.callbacks.error,function(e,t){s.$emit("log.error",{cause:t,msg:"Kunne ikke hente søgeresultater."}),i.reject(t)}),s.$emit("searchService.request",e),i.promise},loadMediaBulk:function(e){var i=n.defer(),t="?ids[]="+e.join("&ids[]=");return o.get("/api/bulk/media/api"+t).success(function(e,t){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise},getMedia:function(e){var i=n.defer();return o.get("/api/media/"+e).success(function(e){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise},updateMedia:function(e){var i=n.defer();return o.put("/api/media/"+e.id,e).success(function(e){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise},deleteMedia:function(e){var i=n.defer();return o.delete("/api/media/"+e).success(function(e){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise}};return e}]),angular.module("ikShared").factory("templateFactory",["$q","$http",function(n,o){"use strict";var e={},s=OS2DISPLAY_TEMPLATES.slides,r=OS2DISPLAY_TEMPLATES.screens;return e.getSlideTemplates=function(){var i=n.defer();return null!==s?i.resolve(s):o.get("/api/templates/slides/all").success(function(e){s=e,i.resolve(s)}).error(function(e,t){i.reject(t)}),i.promise},e.getSlideTemplate=function(i){var o=n.defer();return e.getSlideTemplates().then(function(e){for(var t=0;t link[href='"+e.css_path+"']")||$("head").append('')}))}),t.play=function(){angular.isDefined(t.interval)?(e.cancel(t.interval),t.interval=void 0,t.buttonState="play"):(t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length,t.interval=e(function(){t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length},2e3),t.buttonState="pause")},t.redirectToChannel=function(){t.ikClickable&&i.path("/shared-channel/"+t.ikChannel.unique_id+"/"+t.ikSharingIndex)},t.$on("$destroy",function(){angular.isDefined(t.interval)&&(e.cancel(t.interval),t.interval=void 0)})},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/sharedChannel/shared-channel-template.html?"+window.config.version}}]),angular.module("ikShared").directive("sharedChannelOverview",["sharedChannelFactory","userService","$timeout","busService",function(e,t,i,n){"use strict";return{restrict:"E",scope:{ikSelectedChannels:"=",ikOverlay:"@",ikSingleSlide:"="},link:function(o){o.index={},o.loading=!1,o.pickIndexDialog=!1,o.displaySharingOption=window.config.sharingService.enabled,o.sharingIndexes=[],e.getSharingIndexes().then(function(e){o.sharingIndexes=e}),o.sort={created_at:"desc"},o.currentUser=t.getCurrentUser(),o.showFromUser=localStorage.getItem("overview.shared_channel.search_filter_default")?localStorage.getItem("overview.shared_channel.search_filter_default"):"all",o.pager={size:6,page:0},o.hits=0,o.channels=[];var i={fields:"title",text:"",filter:{bool:{must:{}}},sort:{created_at:{order:"desc"}},pager:o.pager};o.updateSearch=function(){i.text=o.search_text,angular.isUndefined(o.index.index)?n.$emit("log.info",{msg:"Du skal vælge et indeks først.",timeout:3e3}):(o.loading=!0,e.searchChannels(i,o.index.index).then(function(e){o.loading=!1,o.hits=e.hits,o.channels=e.results},function(e){n.$emit("log.error",{cause:e,msg:"Hentning af søgeresultater fejlede."}),o.loading=!1}))},o.$on("channel-deleted",function(){o.updateSearch()}),o.channelSelected=function(t){if(!o.ikSelectedChannels)return!1;var i=!1;return o.ikSelectedChannels.forEach(function(e){e.unique_id==t.unique_id&&(i=!0)}),i},o.clickSharedChannel=function(e,t){o.$emit("channelSharingOverview.clickSharedChannel",e,t)},o.setIndex=function(e){o.index=e,o.pickIndexDialog=!1,o.updateSearch()},o.setUser=function(e){localStorage.setItem("overview.shared_channel.search_filter_default",e),o.showFromUser!==e&&(o.showFromUser=e,o.updateSearch())},o.setSearchFilters=function(){if(delete i.filter,"all"!==o.showFromUser&&(i.filter={bool:{must:[]}}),"all"!==o.showFromUser){var e={};e.term={user:o.currentUser.id},i.filter.bool.must.push(e)}o.updateSearch()},o.setSort=function(e,t){void 0!==o.sort[e]&&o.sort[e]===t||(o.sort={},o.sort[e]=t,i.sort={},i.sort[e]={order:t},o.updateSearch())}},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/sharedChannelOverview/shared-channel-overview.html?"+window.config.version}}]),angular.module("ikShared").directive("ikChannel",["$interval","$location",function(o,n){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikChannel:"=",ikSingleSlide:"=",ikClickable:"="},link:function(t,e,i){t.slideIndex=0,t.playText="",i.$observe("ikChannel",function(e){e&&(t.ikChannel.slides.length<=0?t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/channel/empty.html?"+window.config.version:(t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/channel/non-empty.html?"+window.config.version,t.buttonState="play"))}),t.play=function(){angular.isDefined(t.interval)?(o.cancel(t.interval),t.interval=void 0,t.buttonState="play"):(t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length,t.interval=o(function(){t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length},2e3),t.buttonState="pause")},t.redirectToChannel=function(){t.ikClickable&&n.path("/channel/"+t.ikChannel.id)},t.$on("$destroy",function(){angular.isDefined(t.interval)&&(o.cancel(t.interval),t.interval=void 0)})},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/channel/channel-template.html?"+window.config.version}}]),angular.module("ikShared").directive("ikChannelOverview",["busService",function(a){"use strict";return{restrict:"E",scope:{ikSelectedChannels:"=",ikOverlay:"@"},controller:["$scope","$filter","$controller","channelFactory",function(o,n,e,s){e("BaseSearchController",{$scope:o}),o.showFromUser=localStorage.getItem("overview.channel.search_filter_default")?localStorage.getItem("overview.channel.search_filter_default"):"all",o.displaySharingOption=window.config.sharingService.enabled,o.channels=[];var r=null;o.updateSearch=function(){o.baseQuery.text=o.search_text,o.loading=!0,s.searchChannels(o.baseQuery).then(function(e){o.hits=e.hits;for(var t=[],i=0;ie.publish_to)return!1;if(e.hasOwnProperty("schedule_repeat")&&e.schedule_repeat){if(!(e.hasOwnProperty("schedule_repeat_days")&&0e.schedule_repeat_to)return!1}}return!0},o.getScheduledText=function(e){var t="";if(e.hasOwnProperty("publish_from")&&(t=t+"Udgivet fra: "+n("date")(1e3*e.publish_from,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("publish_to")&&(t=t+"Udgivet til: "+n("date")(1e3*e.publish_to,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("schedule_repeat")&&e.schedule_repeat){t+="Vises disse dage:
";for(var i=0;i"),e.hasOwnProperty("schedule_repeat_to")&&(t=t+"Til: "+e.schedule_repeat_to+":00
")}return t},o.setSearchFilters()}],templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/channelOverview/channel-overview-directive.html?"+window.config.version}}]),angular.module("ikShared").directive("ikPager",[function(){"use strict";return{restrict:"E",replace:!0,scope:!0,controller:["$scope",function(o){o.pagesFrom=0,o.pagesPerLine=10,o.changePage=function(e){o.pager.page=e,o.updateSearch(),o.pagesFrom=Math.floor(o.pager.page/o.pagesPerLine)*o.pagesPerLine},o.prevPage=function(){0=o.pager.max&&(o.pager.page=o.pager.max-1),o.updateSearch()),o.pagesFrom=Math.floor(o.pager.page/o.pagesPerLine)*o.pagesPerLine},o.$watch("hits",function(e){var t=[];if(o.pager.max=0,e>o.pager.size){o.pager.max=Math.ceil(e/o.pager.size);for(var i=0;iDate.now())},n.slideOverviewClickSlide=function(e){n.$emit("slideOverview.clickSlide",e)},n.slideScheduledNow=function(e){if(!e.published)return!1;var t=new Date;return t=parseInt(t.getTime()/1e3),!(e.hasOwnProperty("schedule_from")&&te.schedule_to)},n.getScheduledText=function(e){var t="";return e.published||(t+="Ikke udgivet!
"),e.hasOwnProperty("schedule_from")&&(t=t+"Udgivet fra: "+i("date")(1e3*e.schedule_from,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("schedule_to")&&(t=t+"Udgivet til: "+i("date")(1e3*e.schedule_to,"dd/MM/yyyy HH:mm")+"."),t},n.setSearchFilters()}],templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/slideOverview/slide-overview-directive.html?"+window.config.version}}]),angular.module("ikShared").directive("ikSlide",["slideFactory","templateFactory",function(e,o){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikSlide:"="},link:function(t,e,i){t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/slide/slide-loading.html?"+window.config.version,i.$observe("ikSlide",function(e){e&&("image"===t.ikSlide.media_type?0{{ slideError }}
'}}]),angular.module("ikShared").directive("ikSlideEditable",["templateFactory","$timeout",function(t,n){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikSlide:"="},link:function(i,o,e){i.templateURL="bundles/os2displayadmin/apps/ikShared/elements/slide/slide-loading.html?"+window.config.version,i.$watch("ikSlide",function(e,t){e&&("image"===i.ikSlide.media_type?(i.ikSlide.currentImage="",0{{ slideError }}
'}}]),angular.module("ikShared").directive("ikSharedSlide",[function(){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikSlide:"="},link:function(t,e,i){t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/slide/slide-loading.html?"+window.config.version,i.$observe("ikSlide",function(e){e&&(t.ikSlide.media_thumbs&&0'}}]),angular.module("ikShared").directive("ikScreenOverview",["busService",function(e){"use strict";return{restrict:"E",scope:{ikSelectedScreens:"=",ikOverlay:"@"},controller:["$scope","$filter","$controller","screenFactory","userService","busService",function(o,t,e,n,i,s){e("BaseSearchController",{$scope:o}),o.showFromUser=localStorage.getItem("overview.media.search_filter_default")?localStorage.getItem("overview.media.search_filter_default"):"all",o.screens=[];var r=null;o.updateSearch=function(){o.baseQuery.text=o.search_text,o.loading=!0,n.searchScreens(o.baseQuery).then(function(e){o.hits=e.hits;for(var t=[],i=0;i",link:function(e,t,i){if(a){var o=e.$eval(i.ikThumb);if(h(o.file)&&l(o.file)){var n=t.find("canvas"),s=new FileReader;s.onload=function(e){var t=new Image;t.onload=r,t.src=e.target.result},s.readAsDataURL(o.file)}}function r(){var e=o.width?o.width:this.width/this.height*o.height,t=o.height?o.height:this.height/this.width*o.width;n.attr({width:e,height:t}),n[0].getContext("2d").drawImage(this,0,0,e,t)}}}}]),angular.module("ikShared").directive("autoGrow",function(){"use strict";return{restrict:"A",scope:{fontSize:"@"},link:function(e,t){function i(e){e.css("height","0px");var t=e.prop("scrollHeight"),i=e.css("min-height").replace("px","");e.css("height",Math.max(t,i)+"px")}var o=$(t);t.bind("keyup",function(){i(o)}),e.$watch("fontSize",function(e){e&&i(o)}),setTimeout(function(){i(o)},100)}}}),angular.module("ikShared").directive("includeReplace",function(){"use strict";return{require:"ngInclude",restrict:"A",link:function(e,t){t.replaceWith(t.children())}}}),function(){"use strict";angular.module("itkControlPanel",[]).directive("controlPanel",["busService",function(e){return{restrict:"E",scope:{template:"=",data:"=",screen:"=",display:"=",saveAction:"&",region:"=",options:"="},replace:!0,link:function(t){t.selectedTab=null,e.$emit("bodyService.addClass","is-screen"),t.getContent=function(){return t.template},t.clickTab=function(e){t.selectedTab=e},t.toggleChannelType=function(e){t.channelType=e},t.$on("$destroy",function(){document.getElementsByTagName("body")[0].style.overflow=""})},template:'
'}}])}.call(this),function(){"use strict";angular.module("ngModal",[]).directive("modalDialog",[function(){return{restrict:"E",scope:{show:"=",onClose:"&?"},replace:!0,transclude:!0,link:function(i){i.hideModal=function(){i.show=!1},i.$watch("show",function(e,t){if(document.getElementsByTagName("body")[0].style.overflow=e&&!t?"hidden":"",!e&&t&&null!==i.onClose)return i.onClose()})},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/ngModal/ng-modal.html?"+window.config.version}}])}.call(this),angular.module("ikShared").directive("ikDisabledList",[function(){"use strict";return{restrict:"E",replace:!1,scope:{elements:"="},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/disabledList/disabled-list.html?"+window.config.version}}]),function(){"use strict";angular.module("itkScreenTemplatePickerWidget",[]).directive("screenTemplatePickerWidget",["templateFactory","busService",function(e,i){return{restrict:"E",scope:{screen:"="},replace:!0,link:function(t){t.templates=[],e.getEnabledScreenTemplates().then(function(e){t.templates=e},function(e){i.$emit("log.error",{cause:e,msg:"Kunne ikke loade templates."})}),t.pickTemplate=function(e){t.screen.template=angular.copy(e)}},templateUrl:"bundles/os2displayadmin/apps/ikShared/widgets/screenTemplatePickerWidget/screenTemplatePickerWidget.html?"+window.config.version}}])}.call(this),function(){"use strict";angular.module("itkTextWidget",[]).directive("textWidget",function(){return{restrict:"E",scope:{field:"=",placeholderText:"@"},replace:!0,template:''}})}.call(this),function(){"use strict";angular.module("itkTextAreaWidget",[]).directive("textAreaWidget",function(){return{restrict:"E",scope:{field:"=",placeholderText:"@"},replace:!0,template:''}})}.call(this),function(){"use strict";angular.module("itkNumberWidget",[]).directive("numberWidget",function(){return{restrict:"E",scope:{field:"=",placeholderText:"@"},replace:!0,template:''}})}.call(this),function(){"use strict";angular.module("itkChannelPickerWidget",[]).directive("channelPickerWidget",["userService","channelFactory","busService",function(t,n,s){return{restrict:"E",replace:!0,templateUrl:"bundles/os2displayadmin/apps/ikShared/widgets/channelPickerWidget/channel-picker-widget.html?"+window.config.version,scope:{screen:"=",region:"="},link:function(o){o.sharingEnabled=window.config.sharingService.enabled,o.loading=!1,o.showFromUser="all",o.sort={created_at:"desc"},o.selectedGroup=null,o.currentUser=t.getCurrentUser();var e=s.$on("itkChannelPickerWidget.currentUserGroups",function(e,t){o.userGroups=t});t.getCurrentUserGroups("itkChannelPickerWidget.currentUserGroups"),o.pager={size:5,page:0},o.hits=0,o.channels=[],o.search={fields:"title",text:"",filter:{bool:{must:[]}},sort:{created_at:{order:"desc"}},pager:o.pager},o.updateSearch=function(){var e=angular.copy(o.search);e.text=o.search_text,null!==o.selectedGroup&&e.filter.bool.must.push({terms:{groups:[o.selectedGroup.id]}}),o.loading=!0,n.searchChannels(e).then(function(e){o.hits=e.hits;for(var t=[],i=0;i=t?i.push(n):n.from&&n.from>=t&&i.push(n)}return i}}),angular.module("ikApp").controller("ScreenController",["$scope","$controller","$location","$routeParams","$timeout","screenFactory","channelFactory","sharedChannelFactory","templateFactory","busService","userService",function(t,e,i,o,n,s,r,a,h,l,d){"use strict";e("BaseEntityController",{$scope:t,entityType:"screen"}),t.loading=!0,t.sharingEnabled=window.config.sharingService.enabled,t.screen={},t.toolbarTemplate=null,t.display=!1,t.region=null,t.controlPanelData={userGroups:t.userGroups,baseUnavailableGroups:t.baseUnavailableGroups},t.$watch("userGroups",function(){t.controlPanelData.userGroups=t.userGroups}),t.$watch("baseUnavailableGroups",function(){t.controlPanelData.baseUnavailableGroups=t.baseUnavailableGroups}),o.id?null===o.id||void 0===o.id||""===o.id?i.path("/screen-overview"):s.getEditScreen(o.id).then(function(e){t.loading=!1,t.screen=e,t.screen.channel_screen_regions.forEach(function(e){e.shared_channel&&(e.shared_channel.content=JSON.parse(e.shared_channel.content),e.shared_channel.title=e.shared_channel.content.title,e.shared_channel.slides=e.shared_channel.content.slides)}),t.screen==={}&&i.path("/screen")},function(e){l.$emit("log.error",{cause:e,msg:"Skærmen med id: "+o.id+" blev ikke fundet"})}):(t.screen=s.emptyScreen(),h.getScreenTemplate("full-screen").then(function(e){t.screen.template=e,t.loading=!1},function(e){404===e&&h.getEnabledScreenTemplates().then(function(e){t.screen.template=angular.copy(e[0]),t.screen.orientation=e[0].orientation,t.loading=!1},function(e){l.$emit("log.error",{cause:e,msg:"Skabelonerne blev ikke loaded"})})})),t.saveScreenAndClose=function(){t.displayToolbar=!1,t.region=null,s.saveScreen().then(function(e){l.$emit("log.info",{msg:"Skærmen ("+e.title+") er gemt",timeout:5e3}),n(function(){i.path("/screen-overview")},1e3)},function(e){l.$emit("log.error",{cause:e,msg:"Skærmen blev ikke gemt"})})},t.saveScreen=function(){t.displayToolbar=!1,t.region=null,s.saveScreen().then(function(e){l.$emit("log.info",{msg:"Skærmen ("+e.title+") er gemt",timeout:5e3})},function(e){l.$emit("log.error",{cause:e,msg:"Skærmen blev ikke gemt"})})},t.triggerTool=function(e){t.screen.template.tools.hasOwnProperty(e.name)?t.toolbarTemplate=t.screen.template.tools[e.name]:t.toolbarTemplate="bundles/os2displayadmin/apps/ikShared/toolbars/"+e.name+".html?"+window.config.version,t.region=e.region,t.displayToolbar=!0}}]),angular.module("ikApp").controller("SharedChannelController",["$scope","$location","$routeParams","$timeout","screenFactory","sharedChannelFactory","busService",function(t,i,e,o,n,s,r){"use strict";function a(e){t.step=e,t.templatePath="bundles/os2displayadmin/apps/ikApp/pages/sharedChannel/shared-channel-step"+t.step+".html?"+window.config.version}t.steps=1,t.step=1,t.channel={},t.channel.slides=[],t.status="edit",n.getScreens().then(function(e){t.screens=e},function(e){r.$emit("log.error",{cause:e,msg:"Kunne ikke hente skærme."})}),e.id&&e.index?s.getSharedChannel(e.id,e.index).then(function(e){t.channel=JSON.parse(e.content),t.channel==={}&&i.path("/channel-sharing-overview"),a(1)},function(e){r.$emit("log.error",{cause:e,msg:"Delt kanal kunne ikke hentes."})}):i.path("/channel-sharing-overview"),t.submitStep=function(){i.path("/channel-sharing-overview")},t.goToStep=function(e){a(e)}}]),angular.module("ikApp").controller("AdminSharingController",["busService","sharedChannelFactory","$scope",function(t,e,i){"use strict";i.saving=!1,i.availableIndexes=[],e.getAvailableIndexes().then(function(e){e.forEach(function(e){"shared"===e.tag&&i.availableIndexes.push(e)})},function(e){t.$emit("log.error",{cause:e,msg:"Hentning af tilgængelige delingsindeks fejlede."})}),i.chosenIndexes=[],e.getSharingIndexes().then(function(e){i.chosenIndexes=e},function(e){t.$emit("log.error",{cause:e,msg:"Hentning af valgte delingsindeks fejlede."})}),i.save=function(){i.saving=!0,e.saveSharingIndexes(i.chosenIndexes).then(function(){t.$emit("log.info",{msg:"Delingsindeks gemt",timeout:3e3}),i.saving=!1},function(e){t.$emit("log.error",{cause:e,msg:"Delingsindeks blev ikke gemt."}),i.saving=!1})}}]),angular.module("ikApp").controller("AdminTemplatesController",["busService","templateFactory","$scope",function(t,e,o){"use strict";o.saving=!1,o.screenTemplates=[],o.slideTemplates=[],o.enabledScreenTemplates=[],o.enabledSlideTemplates=[],e.getScreenTemplates().then(function(e){o.screenTemplates=e;for(var t=[],i=0;ie.schedule_to)},n.getScheduledText=function(e){var t="";return e.published||(t+="Ikke udgivet!
"),e.hasOwnProperty("schedule_from")&&(t=t+"Udgivet fra: "+s("date")(1e3*e.schedule_from,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("schedule_to")&&(t=t+"Udgivet til: "+s("date")(1e3*e.schedule_to,"dd/MM/yyyy HH:mm")+"."),t},n.goToStep=function(e){var t=1;n.validation.titleSet()&&(t+=3),e<=t&&d(e)},n.pushRight=function(e){e===n.channel.slides.length-1?c(n.channel.slides,e,0):c(n.channel.slides,e,e+1)},n.pushLeft=function(e){c(n.channel.slides,e,0===e?n.channel.slides.length-1:e-1)},n.handleDrop=function(e,t){e=parseInt(e.split("index-")[1]),t=parseInt(t.split("index-")[1]);var i=n.channel.slides.splice(e,1);n.channel.slides.splice(t,0,i[0])},n.sortSlides=function(e){var t=n.lastSortUsed===e;"random"!==(n.lastSortUsed=e)?n.channel.slides=s("orderBy")(n.channel.slides,t?"-":""+e):n.channel.slides=function(e){for(var t,i,o=e.length;0!==o;)i=Math.floor(Math.random()*o),t=e[o-=1],e[o]=e[i],e[i]=t;return e}(n.channel.slides)}}]),angular.module("ikApp").controller("ChannelOverviewController",["$scope","sharedChannelFactory","channelFactory","busService",function(i,e,o,n){"use strict";i.shareDialogShow=!1,i.shareDialogChannel=null,window.config.sharingService.enabled&&(i.$on("ikChannelShare.clickShare",function(e,t){i.shareDialogShow=!0,i.shareDialogChannel=t,o.getChannel(t.id).then(function(e){i.shareDialogChannel=e,i.shareDialogChannel.sharing_indexes||(i.shareDialogChannel.sharing_indexes=[])},function(e){n.$emit("log.error",{cause:e,msg:"Hentning af kanal fejlede"})})}),i.sharingIndexes=[],e.getSharingIndexes().then(function(e){i.sharingIndexes=e},function(e){n.$emit("log.error",{cause:e,msg:"Hentning af delingsindeks fejlede."})}),i.saveSharingChannel=function(){o.channelShare(i.shareDialogChannel).then(function(){n.$emit("log.info",{msg:"Delingskonfiguration af kanal lykkedes.",timeout:3e3})},function(e){n.$emit("log.error",{cause:e,msg:"Deling af kanal fejlede."})})})}]),angular.module("ikApp").controller("MediaOverviewController",["$scope","$location",function(e,i){"use strict";e.$on("mediaOverview.selectMedia",function(e,t){i.path("/media/"+t.id)})}]),angular.module("ikApp").controller("MediaEditController",["$scope","$controller","$location","$routeParams","$timeout","mediaFactory","busService","userService",function(t,e,i,o,n,s,r,a){"use strict";e("BaseEntityController",{$scope:t,entityType:"media"}),t.loading=!0,s.getMedia(o.id).then(function(e){n(function(){t.media=e,t.media==={}&&i.path("/media-overview")})},function(e){r.$emit("log.error",{cause:e,msg:"Kunne ikke hente media med id: "+o.id}),i.path("/media-overview")}).then(function(){t.loading=!1}),t.updateMedia=function(){t.loading=!0,s.updateMedia(t.media).then(function(){n(function(){r.$emit("log.info",{msg:"Media opdateret.",timeout:3e3})})},function(e){r.$emit("log.error",{cause:e,msg:"Opdatering af media fejlede."})}).then(function(){t.loading=!1})},t.delete=function(){t.loading=!0,s.deleteMedia(t.media.id).then(function(){r.$emit("log.info",{msg:"Media slettet.",timeout:3e3}),n(function(){i.path("/media-overview")},500)},function(e){r.$emit("log.error",{cause:e,msg:"Sletning af media fejlede."})}).then(function(){t.loading=!1})},t.getContentType=function(e){return e?e.content_type.split("/")[0]:""},t.videoPath=function(e,t){var i="";return e.provider_metadata.forEach(function(e){e.format===t&&(i=e.reference),"thumbnail_landscape"===t&&e.thumbnails.forEach(function(e){"mp4_landscape"===e.label&&(i=e.reference)})}),i}}]),angular.module("ikApp").controller("SlideOverviewController",["$scope","$location",function(e,i){"use strict";e.$on("slideOverview.clickSlide",function(e,t){i.path("/slide/"+t.id)})}]),angular.module("ikApp").controller("SlideController",["$scope","$controller","$location","$routeParams","$timeout","slideFactory","templateFactory","channelFactory","busService","userService",function(n,e,t,i,o,s,r,a,h,l){"use strict";function d(e){n.step=e,n.templatePath="bundles/os2displayadmin/apps/ikApp/pages/slide/slide-step"+n.step+".html?"+window.config.version}function c(e){return!!n.slide&&""!==n.slide[e]}e("BaseEntityController",{$scope:n,entityType:"slide"}),n.steps=6,n.slide={},n.templates=[],r.getEnabledSlideTemplates().then(function(e){for(var t in e)e.hasOwnProperty(t)&&n.templates.push(e[t])},function(e){h.$emit("log.error",{cause:e,msg:"Kunne ikke hente slide templates."})}),n.editor={channelOverviewEditor:!1,toggleChannelOverviewEditor:function(){h.$emit("bodyService.toggleClass","is-locked"),n.editor.channelOverviewEditor=!n.editor.channelOverviewEditor}},n.$on("channelOverview.clickChannel",function(e,t){n.toggleChannel(t)}),i.id?null===i.id||void 0===i.id||""===i.id?t.path("/slide"):(s.clearCurrentSlide(),s.getEditSlide(i.id).then(function(e){n.slide=e,n.slide.status="edit-slide",n.slide==={}&&t.path("/slide"),d(3)},function(e){h.$emit("log.error",{cause:e,msg:"Kunne ikke hente slide med id: "+i.id}),t.path("/slide-overview")})):(n.slide=s.emptySlide(),n.slide.channels=[],d(1)),n.submitStep=function(){n.step===n.steps?(n.disableSubmitButton=!0,""===n.slide.duration&&(n.slide.duration=15),s.saveSlide().then(function(){h.$emit("log.info",{msg:"Slide er gemt",timeout:3e3}),o(function(){t.path("/slide-overview")},1e3)},function(e){h.$emit("log.error",{cause:e,msg:"Kunne ikke gemme slide"}),n.disableSubmitButton=!1})):d(n.step+1)},n.validation={titleSet:function(){return c("title")},templateSet:function(){return c("template")}},n.goToStep=function(e){var t=1;n.validation.titleSet()&&(t++,n.validation.templateSet()&&(t+=4)),e<=t&&d(e)},n.selectTemplate=function(t){n.slide.template=t;var i=null;n.templates.forEach(function(e){e.id===t&&(i=e)}),null!==i&&(n.slide.slide_type=i.slide_type,n.slide.options||(n.slide.options={}),n.slide.orientation=i.orientation,angular.forEach(i.empty_options,function(e,t){void 0===n.slide.options[t]&&(n.slide.options[t]=angular.copy(e))}),""===n.slide.options.headline&&(n.slide.options.headline=n.slide.title),n.slide.media_type=i.media_type)},n.channelSelected=function(t){var i=!1;return n.slide.channels.forEach(function(e){t.id===e.id&&(i=!0)}),i},n.hasChannel=function(t){var i=!1;return n.slide.channels.forEach(function(e){t.id===e.id&&(i=!0)}),i},n.toggleChannel=function(i){var o=null;n.slide.channels.forEach(function(e,t){i.id===e.id&&(o=t)}),null!==o?n.slide.channels.splice(o,1):n.slide.channels.push(i)}}]),angular.module("ikApp").controller("SlideEditController",["$scope","slideFactory","busService","templateFactory","$compile","$templateRequest",function(o,e,n,t,s,i){"use strict";e.getEditSlide(null).then(function(e){o.slide=e,t.getSlideTemplate(e.template).then(function(e){o.template=e},function(e){n.$emit("log.error",{cause:e,msg:"Kunne ikke loade værktøjer til slidet."})})},function(e){n.$emit("log.error",{cause:e,msg:"Kunne ikke hente slide."})}),n.$emit("bodyService.removeClass","is-locked"),o.editor={editorOpen:!1,hideEditors:function(){n.$emit("bodyService.removeClass","is-locked"),o.editor.editorOpen=!1,o.selectedTool=null;var e=document.getElementById("slide-edit-tool");angular.element(e).html(s("")(o))}},o.openTool=function(e){n.$emit("bodyService.toggleClass","is-locked"),o.editor.editorOpen=!0,e.id||(e.id="base-editor"),o.selectedTool=e;var t=document.getElementById("slide-edit-tool"),i="
<"+e.id+' slide="slide" close="editor.hideEditors()" '+(e.template?'template="'+e.template+'"':"")+' tool="selectedTool">
";angular.element(t).html(s(i)(o))}}]),function(){"use strict";angular.module("itkDateComponent",[]).directive("dateComponent",["$interval",function(i){return{restrict:"E",replace:!0,templateUrl:"bundles/os2displayadmin/apps/ikApp/shared/components/date/date.html?"+window.config.version,scope:{theme:"@"},link:function(e){e.thisDate=new Date;var t=i(function(){e.thisDate=new Date},6e4);e.$on("$destroy",function(){angular.isDefined(t)&&(i.cancel(t),t=void 0)})}}}])}.call(this),function(){"use strict";angular.module("itkDigitalClockComponent",[]).directive("digitalClockComponent",["$interval",function(i){return{restrict:"E",replace:!0,templateUrl:"bundles/os2displayadmin/apps/ikApp/shared/components/digital-clock/digital-clock.html?"+window.config.version,scope:{},link:function(e){e.thisDate=new Date;var t=i(function(){e.thisDate=Date.now()},1e3);e.$on("$destroy",function(){angular.isDefined(t)&&(i.cancel(t),t=void 0)})}}}])}.call(this),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.vis=t():e.vis=t()}(this,function(){return n={},i.m=o=[function(e,t,i){var o=i(1);o.extend(t,i(7)),o.extend(t,i(24)),o.extend(t,i(60))},function(e,h,t){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=t(2),i=t(6);h.isNumber=function(e){return e instanceof Number||"number"==typeof e},h.recursiveDOMDelete=function(e){if(e)for(;!0===e.hasChildNodes();)h.recursiveDOMDelete(e.firstChild),e.removeChild(e.firstChild)},h.giveRange=function(e,t,i,o){if(t==e)return.5;var n=1/(t-e);return Math.max(0,(o-e)*n)},h.isString=function(e){return e instanceof String||"string"==typeof e},h.isDate=function(e){if(e instanceof Date)return!0;if(h.isString(e)){if(s.exec(e))return!0;if(!isNaN(Date.parse(e)))return!0}return!1},h.randomUUID=function(){return i.v4()},h.assignAllKeys=function(e,t){for(var i in e)e.hasOwnProperty(i)&&"object"!==n(e[i])&&(e[i]=t)},h.fillIfDefined=function(e,t){var i=!(arguments.length<=2||void 0===arguments[2])&&arguments[2];for(var o in e)void 0!==t[o]&&("object"!==n(t[o])?void 0!==t[o]&&null!==t[o]||void 0===e[o]||!0!==i?e[o]=t[o]:delete e[o]:"object"===n(e[o])&&h.fillIfDefined(e[o],t[o],i))},h.protoExtend=function(e,t){for(var i=1;i=t&&b(n,i,!0)>=t-1)break;t--}s++}return null}(e)}function t(e,t){var i=e.toLowerCase();tt[i]=tt[i+"s"]=tt[t]=e}function P(e){return"string"==typeof e?tt[e]||tt[e.toLowerCase()]:void 0}function I(e){var t,i,o={};for(i in e)p(e,i)&&(t=P(i))&&(o[t]=e[i]);return o}function i(t,i){return function(e){return null!=e?(R(this,t,e),u.updateOffset(this,i),this):A(this,t)}}function A(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function R(e,t,i){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](i)}function L(e,t){var i;if("object"==typeof e)for(i in e)this.set(i,e[i]);else if(x(this[e=P(e)]))return this[e](t);return this}function N(e,t,i){var o=""+Math.abs(e),n=t-o.length,s=0<=e;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function z(e,t,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),e&&(st[e]=n),t&&(st[t[0]]=function(){return N(n.apply(this,arguments),t[1],t[2])}),i&&(st[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function F(e,t){return e.isValid()?(t=B(t,e.localeData()),nt[t]=nt[t]||function(o){var e,n,t,s=o.match(it);for(e=0,n=s.length;eY(i[St],i[Ot])?Ct:i[Mt]<0||24Q(e)?(s=e+1,l-Q(e)):(s=e,l),{year:s,dayOfYear:r}}function oe(e,t,i){var o,n,s=te(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return r<1?(n=e.year()-1,o=r+ne(n,t,i)):r>ne(e.year(),t,i)?(o=r-ne(e.year(),t,i),n=e.year()+1):(n=e.year(),o=r),{week:o,year:n}}function ne(e,t,i){var o=te(e,t,i),n=te(e+1,t,i);return(Q(e)-o+n)/7}function se(e,t,i){return null!=e?e:null!=t?t:i}function re(e){var t,i,o,n,s=[];if(!e._d){for(o=function(e){var t=new Date(u.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[Ct]&&null==e._a[Ot]&&function(e){var t,i,o,n,s,r,a,h;null!=(t=e._w).GG||null!=t.W||null!=t.E?(s=1,r=4,i=se(t.GG,e._a[St],oe(de(),1,4).year),o=se(t.W,1),((n=se(t.E,1))<1||7ne(i,s,r)?f(e)._overflowWeeks=!0:null!=h?f(e)._overflowWeekday=!0:(a=ie(i,o,n,s,r),e._a[St]=a.year,e._dayOfYear=a.dayOfYear)}(e),e._dayOfYear&&(n=se(e._a[St],o[St]),e._dayOfYear>Q(n)&&(f(e)._overflowDayOfYear=!0),i=J(n,0,e._dayOfYear),e._a[Ot]=i.getUTCMonth(),e._a[Ct]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=o[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Mt]&&0===e._a[Dt]&&0===e._a[Et]&&0===e._a[Tt]&&(e._nextDay=!0,e._a[Mt]=0),e._d=(e._useUTC?J:function(e,t,i,o,n,s,r){var a=new Date(e,t,i,o,n,s,r);return e<100&&0<=e&&isFinite(a.getFullYear())&&a.setFullYear(e),a}).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Mt]=24)}}function ae(e){if(e._f!==u.ISO_8601){e._a=[],f(e).empty=!0;var t,i,o,n,s,r,a,h,l=""+e._i,d=l.length,c=0;for(o=B(e._f,e._locale).match(it)||[],t=0;t>>0,o=0;oi.valueOf():i.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ci.isDSTShifted=function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(c(e,this),(e=he(e))._a){var t=e._isUTC?d(e._a):de(e._a);this._isDSTShifted=this.isValid()&&0>>((3&t)<<3)&255;return n}}for(var s=[],a={},h=0;h<256;h++)s[h]=(h+256).toString(16).substr(1),a[s[h]]=h;var l=r(),f=[1|l[0],l[1],l[2],l[3],l[4],l[5]],m=16383&(l[6]<<8|l[7]),g=0,v=0,d=t;d.v1=function(e,t,i){var o=t&&i||0,n=t||[],s=void 0!==(e=e||{}).clockseq?e.clockseq:m,r=void 0!==e.msecs?e.msecs:(new Date).getTime(),a=void 0!==e.nsecs?e.nsecs:v+1,h=r-g+(a-v)/1e4;if(h<0&&void 0===e.clockseq&&(s=s+1&16383),(h<0||g>>24&255,n[o++]=l>>>16&255,n[o++]=l>>>8&255,n[o++]=255&l;var d=r/4294967296*1e4&268435455;n[o++]=d>>>8&255,n[o++]=255&d,n[o++]=d>>>24&15|16,n[o++]=d>>>16&255,n[o++]=s>>>8|128,n[o++]=255&s;for(var c=e.node||f,u=0;u<6;u++)n[o+u]=c[u];return t||p(n)},d.v4=t,d.parse=function(e,t,i){var o=t&&i||0,n=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){n<16&&(t[o+n++]=a[e])});n<16;)t[o+n++]=0;return t},d.unparse=p,c.exports=d}).call(e,function(){return this}())},function(e,t,i){t.util=i(1),t.DOMutil=i(8),t.DataSet=i(9),t.DataView=i(11),t.Queue=i(10),t.Graph3d=i(12),t.graph3d={Camera:i(16),Filter:i(17),Point2d:i(15),Point3d:i(14),Slider:i(18),StepNumber:i(19)},t.moment=i(2),t.Hammer=i(20),t.keycharm=i(23)},function(e,l){l.prepareElements=function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])},l.cleanupElements=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var i=0;ithis.max&&this.flush(),clearTimeout(this._timeout),0e[o][t]&&(i.min=e[o][t]),i.max"+this.xLabel+":"+e.point.x+""+this.yLabel+":"+e.point.y+""+this.zLabel+":"+e.point.z+"",t.style.left="0",t.style.top="0",this.frame.appendChild(t),this.frame.appendChild(i),this.frame.appendChild(o);var n=t.offsetWidth,s=t.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,l=e.screen.x-n/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-n),i.style.left=e.screen.x+"px",i.style.top=e.screen.y-r+"px",t.style.left=l+"px",t.style.top=e.screen.y-r-s+"px",o.style.left=e.screen.x-a/2+"px",o.style.top=e.screen.y-h/2+"px"},w.prototype._hideTooltip=function(){if(this.tooltip)for(var e in this.tooltip.dataPoint=null,this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(e)){var t=this.tooltip.dom[e];t&&t.parentNode&&t.parentNode.removeChild(t)}},e.exports=w},function(e,t){function i(e){return e?function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e):void 0}(e.exports=i).prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){function i(){o.off(e,i),t.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var o,n=0;n.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===e&&void 0===t||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var e={};return e.horizontal=this.armRotation.horizontal,e.vertical=this.armRotation.vertical,e},o.prototype.setArmLength=function(e){void 0!==e&&(this.armLength=e,this.armLength<.71&&(this.armLength=.71),5=this.values.length)throw"Error: index out of range";return this.values[e]},o.prototype._getDataPoints=function(e){if(void 0===e&&(e=this.index),void 0===e)return[];var t;if(this.dataPoints[e])t=this.dataPoints[e];else{var i={};i.column=this.column,i.value=this.values[e];var o=new n(this.data,{filter:function(e){return e[i.column]==i.value}}).get();t=this.graph._getDataPoints(o),this.dataPoints[e]=t}return t},o.prototype.setOnLoadCallback=function(e){this.onLoadCallback=e},o.prototype.selectValue=function(e){if(e>=this.values.length)throw"Error: index out of range";this.index=e,this.value=this.values[e]},o.prototype.loadInBackground=function(e){void 0===e&&(e=0);var t=this.graph.frame;if(ethis.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(e){var t=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return 3+e/(this.values.length-1)*t},o.prototype._onMouseMove=function(e){var t=e.clientX-this.startClientX,i=this.startSlideX+t,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(e){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},e.exports=o},function(e,t){function i(e,t,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(e,t,i,o)}i.prototype.setRange=function(e,t,i,o){this._start=e||0,this._end=t||0,this.setStep(i,o)},i.prototype.setStep=function(e,t){void 0===e||e<=0||(void 0!==t&&(this.prettyStep=t),!0===this.prettyStep?this._step=i.calculatePrettyStep(e):this._step=e)},i.calculatePrettyStep=function(e){function t(e){return Math.log(e)/Math.LN10}var i=Math.pow(10,Math.round(t(e))),o=2*Math.pow(10,Math.round(t(e/2))),n=5*Math.pow(10,Math.round(t(e/5))),s=i;return Math.abs(o-e)<=Math.abs(s-e)&&(s=o),Math.abs(n-e)<=Math.abs(s-e)&&(s=n),s<=0&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},e.exports=i},function(e,t,i){if("undefined"!=typeof window){var o=i(21),n=window.Hammer||i(22);e.exports=o(n,{preventDefault:"mouse"})}else e.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(e,t,i){var o,n,s;n=[],void 0===(s="function"==typeof(o=function(){var d=null;return function o(n,e){function t(e){return e.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var t=!1;e.stopPropagation=function(){t=!0};var i=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof i&&(e.srcEvent.stopPropagation=function(){i(),e.stopPropagation()});for(var o=e.firstTarget=d;o&&!t;){var n=o.hammer;if(n)for(var s,r=0;r\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",i=s.console&&(s.console.warn||s.console.log);return i&&i.call(s.console,n,t),o.apply(this,arguments)}}function i(e,t,i){var o,n=t.prototype;(o=e.prototype=Object.create(n)).constructor=e,o._super=n,i&&K(o,i)}function h(e,t){return function(){return e.apply(t,arguments)}}function l(e,t){return typeof e==Q?e.apply(t&&t[0]||c,t):e}function d(e,t){return e===c?t:e}function u(t,e,i){r(g(e),function(e){t.addEventListener(e,i,!1)})}function p(t,e,i){r(g(e),function(e){t.removeEventListener(e,i,!1)})}function f(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function m(e,t){return-1t[i]}):o.sort()),o}function w(e,t){for(var i,o,n=t[0].toUpperCase()+t.slice(1),s=0;ste(l.y)?l.x:l.y,t.scale=r?function(e,t){return D(t[0],t[1],ke)/D(e[0],e[1],ke)}(r.pointers,o):1,t.rotation=r?function(e,t){return E(t[1],t[0],ke)+E(e[1],e[0],ke)}(r.pointers,o):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,function(e,t){var i,o,n,s,r=e.lastInterval||t,a=t.timeStamp-r.timeStamp;if(t.eventType!=pe&&(dete(d.y)?d.x:d.y,s=M(h,l),e.lastInterval=t}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;t.velocity=i,t.velocityX=o,t.velocityY=n,t.direction=s}(i,t);var d=e.element;f(t.srcEvent.target,d)&&(d=t.srcEvent.target),t.target=d}(e,i),e.emit("hammer.input",i),e.recognize(i),e.session.prevInput=i}function S(e){for(var t=[],i=0;i=te(t)?e<0?me:ge:t<0?ve:ye}function D(e,t,i){i||(i=xe);var o=t[i[0]]-e[i[0]],n=t[i[1]]-e[i[1]];return Math.sqrt(o*o+n*n)}function E(e,t,i){i||(i=xe);var o=t[i[0]]-e[i[0]],n=t[i[1]]-e[i[1]];return 180*Math.atan2(n,o)/Math.PI}function T(){this.evEl=Oe,this.evWin=Ce,this.allow=!0,this.pressed=!1,x.apply(this,arguments)}function P(){this.evEl=Ee,this.evWin=Te,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function I(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,x.apply(this,arguments)}function A(){this.evTarget=Ae,this.targetIds={},x.apply(this,arguments)}function R(){x.apply(this,arguments);var e=h(this.handler,this);this.touch=new A(this.manager,e),this.mouse=new T(this.manager,e)}function L(e,t){this.manager=e,this.set(t)}function N(e){this.options=K({},this.defaults,e||{}),this.id=se++,this.manager=null,this.options.enable=d(this.options.enable,!0),this.state=je,this.simultaneous={},this.requireFail=[]}function z(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function F(e){return e==ye?"down":e==ve?"up":e==me?"left":e==ge?"right":""}function B(e,t){var i=t.manager;return i?i.get(e):e}function j(){N.apply(this,arguments)}function H(){j.apply(this,arguments),this.pX=null,this.pY=null}function W(){j.apply(this,arguments)}function $(){N.apply(this,arguments),this._timer=null,this._input=null}function U(){j.apply(this,arguments)}function Y(){j.apply(this,arguments)}function G(){N.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function V(e,t){return(t=t||{}).recognizers=d(t.recognizers,V.defaults.preset),new q(e,t)}function q(e,t){this.options=K({},V.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.element=e,this.input=function(e){var t=e.options.inputClass;return new(t||(ae?P:he?A:re?R:T))(e,k)}(this),this.touchAction=new L(this,this.options.touchAction),X(this,!0),r(this.options.recognizers,function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])},this)}function X(e,i){var o=e.element;o.style&&r(e.options.cssProps,function(e,t){o.style[w(o.style,t)]=i?e:""})}var K,Z=["","webkit","Moz","MS","ms","o"],J=n.createElement("div"),Q="function",ee=Math.round,te=Math.abs,ie=Date.now;K="function"!=typeof Object.assign?function(e){if(e===c||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;it.threshold&&n&t.direction},attrTest:function(e){return j.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=F(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),i(W,j,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ze]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),i($,N,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return["auto"]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,o=e.distancet.time;if(this._input=e,!o||!i||e.eventType&(ue|pe)&&!n)this.reset();else if(e.eventType&ce)this.reset(),this._timer=a(function(){this.state=8,this.tryEmit()},t.time,this);else if(e.eventType&ue)return 8;return 32},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&e.eventType&ue?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=ie(),this.manager.emit(this.options.event,this._input)))}}),i(U,j,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ze]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),i(Y,j,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:be|we,pointers:1},getTouchAction:function(){return H.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return i&(be|we)?t=e.overallVelocity:i&be?t=e.overallVelocityX:i&we&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&te(t)>this.options.velocity&&e.eventType&ue},emit:function(e){var t=F(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),i(G,N,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ne]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,o=e.distance"+e+":":e+":",o}},{key:"_makeDropdown",value:function(e,t,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==t&&-1!==e.indexOf(t)&&(n=e.indexOf(t));for(var s=0;svar options = "+JSON.stringify(e,null,2)+""}},{key:"getOptions",value:function(){for(var e={},t=0;tn.distance?console.log('%cUnknown option detected: "'+e+'" in '+p.printLocation(o.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+p.printLocation(n.path,n.closestMatch,""),l):o.distance<=8?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+o.closestMatch+'"?'+p.printLocation(o.path,e),l):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+p.print(Object.keys(t))+p.printLocation(i,e),l),h=!0}},{key:"findInOptions",value:function(e,t,i){var o=!(arguments.length<=3||void 0===arguments[3])&&arguments[3],n=1e9,s="",r=[],a=e.toLowerCase(),h=void 0;for(var l in t){var d=void 0;if(void 0!==t[l].__type__&&!0===o){var c=p.findInOptions(e,t[l],u.copyAndExtendArray(i,l));n>c.distance&&(s=c.closestMatch,r=c.path,n=c.distance,h=c.indexMatch)}else-1!==l.toLowerCase().indexOf(a)&&(h=l),(d=p.levenshteinDistance(e,l))this.start&&nthis.end?(o=this.start,n=this.end):(o+=(i=n-o-h)/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(e,t){return o.conversion(this.start,this.end,e,t)},o.conversion=function(e,t,i,o){return void 0===o&&(o=0),0!=i&&t-e!=0?{offset:e,scale:i/(t-e-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(e){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(e)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(e){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var t=this.options.direction;u(t);var i="horizontal"==t?e.deltaX:e.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=y.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n="horizontal"==t?this.body.domProps.center.width:this.body.domProps.center.height;if(this.options.rtl)var s=i/n*o;else s=-i/n*o;var r=this.props.touch.start+s,a=this.props.touch.end+s,h=y.snapAwayFromHidden(this.body.hiddenDates,r,this.previousDelta-i,!0),l=y.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0);if(h!=r||l!=a)return this.deltaDifference+=i,this.props.touch.start=h,this.props.touch.end=l,void this._onDrag(e);this.previousDelta=i,this._applyRange(r,a);var d=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:d,end:c,byUser:!0})}},o.prototype._onDragEnd=function(e){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(e){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(e)&&(!this.options.zoomKey||e[this.options.zoomKey])){var t=0;if(e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),t){var i;i=t<0?1-t/5:1/(1+t/5);var o=this.getPointer({x:e.clientX,y:e.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,t)}e.preventDefault()}},o.prototype._onTouch=function(e){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(e){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(e.center,this.body.dom.center));var t=1/(e.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=y.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=y.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*t,a=i+s+(this.props.touch.end-(i+s))*t;this.startToFront=1-t<=0,this.endToFront=t-1<=0;var h=y.snapAwayFromHidden(this.body.hiddenDates,r,1-t,!0),l=y.snapAwayFromHidden(this.body.hiddenDates,a,t-1,!0);h==r&&l==a||(this.props.touch.start=h,this.props.touch.end=l,this.scaleOffset=1-e.scale,r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(e){var t=e.center?e.center.x:e.clientX;if(this.options.rtl)var i=t-v.getAbsoluteLeft(this.body.dom.centerContainer);else i=v.getAbsoluteRight(this.body.dom.centerContainer)-t;var o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(e){var t,i=this.options.direction;if(u(i),"horizontal"==i)return this.body.util.toTime(e.x).valueOf();var o=this.body.domProps.center.height;return t=this.conversion(o),e.y/t.scale+t.offset},o.prototype.getPointer=function(e,t){return this.options.rtl?{x:v.getAbsoluteRight(t)-e.x,y:e.y-v.getAbsoluteTop(t)}:{x:e.x-v.getAbsoluteLeft(t),y:e.y-v.getAbsoluteTop(t)}},o.prototype.zoom=function(e,t,i){null==t&&(t=(this.start+this.end)/2);var o=y.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=y.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,t),s=o-n,r=t-n+(this.start-(t-n))*e,a=t+s+(this.end-(t+s))*e;this.startToFront=!(0=t[o].start&&t[n].end<=t[o].end?t[n].remove=!0:t[n].start>=t[o].start&&t[n].start<=t[o].end?(t[o].end=t[n].end,t[n].remove=!0):t[n].end>=t[o].start&&t[n].end<=t[o].end&&(t[o].start=t[n].start,t[n].remove=!0));for(o=0;o=i.start&&a=t.start&&hthis.props.centerContainer.height;this.hammer.get("pan").set({direction:p?f.DIRECTION_ALL:f.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.initialDrawDone=!0,this.body.emitter.emit("changed")}},o.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},o.prototype.setCurrentTime=function(e){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(e)},o.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},o.prototype._toTime=function(e){return g.toTime(this,e,this.props.center.width)},o.prototype._toGlobalTime=function(e){return g.toTime(this,e,this.props.root.width)},o.prototype._toScreen=function(e){return g.toScreen(this,e,this.props.center.width)},o.prototype._toGlobalScreen=function(e){return g.toScreen(this,e,this.props.root.width)},o.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},o.prototype._startAutoResize=function(){var e=this;this._stopAutoResize(),this._onResize=function(){return 1!=e.options.autoResize?void e._stopAutoResize():void(e.dom.root&&(e.dom.root.offsetWidth==e.props.lastWidth&&e.dom.root.offsetHeight==e.props.lastHeight||(e.props.lastWidth=e.dom.root.offsetWidth,e.props.lastHeight=e.dom.root.offsetHeight,e.body.emitter.emit("_change"))))},m.addEventListener(window,"resize",this._onResize),e.dom.root&&(e.props.lastWidth=e.dom.root.offsetWidth,e.props.lastHeight=e.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},o.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(m.removeEventListener(window,"resize",this._onResize),this._onResize=null)},o.prototype._onTouch=function(e){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},o.prototype._onPinch=function(e){this.touch.allowDragging=!1},o.prototype._onDrag=function(e){if(this.touch.allowDragging){var t=e.deltaY,i=this._getScrollTop();this._setScrollTop(this.touch.initialScrollTop+t)!=i&&this.emit("verticalDrag")}},o.prototype._setScrollTop=function(e){return this.props.scrollTop=e,this._updateScrollTop(),this.props.scrollTop},o.prototype._updateScrollTop=function(){var e=Math.min(this.props.centerContainer.height-this.props.center.height,0);return e!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=e-this.props.scrollTopMin),this.props.scrollTopMin=e),0t&&o.push(a.id):a.lefti&&o.push(a.id)}return o},c.prototype._deselect=function(e){for(var t=this.selection,i=0,o=t.length;i=s.min&&l<=s.max)||this.options.multiselectPerGroup&&n!=this.itemsData.get(a.id).group||a instanceof m||i.push(a.id)}}else{var d=i.indexOf(t.id);-1==d?i.push(t.id):i.splice(d,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:e})}}},c._getItemRange=function(e){var t=null,i=null;return e.forEach(function(e){(null==i||e.startt)&&(t=e.end):(null==t||e.start>t)&&(t=e.start)}),{min:i,max:t}},c.prototype.itemFromTarget=function(e){for(var t=e.target;t;){if(t.hasOwnProperty("timeline-item"))return t["timeline-item"];t=t.parentNode}return null},c.prototype.groupFromTarget=function(e){for(var t=e.center?e.center.y:e.clientY,i=0;ie.axis){var s=o-e.axis;n-=s,p.forEach(i,function(e){e.top-=s})}t=n+e.item.vertical/2}else t=0;return Math.max(t,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var e=this.dom.label;e.parentNode&&e.parentNode.removeChild(e);var t=this.dom.foreground;t.parentNode&&t.parentNode.removeChild(t);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(e){if((this.items[e.id]=e).setParent(this),void 0!==e.data.subgroup&&(void 0===this.subgroups[e.data.subgroup]&&(this.subgroups[e.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[e.data.subgroup].items.push(e)),this.orderSubgroups(),-1==this.visibleItems.indexOf(e)){var t=this.itemSet.body.range;this._checkIfVisible(e,this.visibleItems,t)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var e=[];if("string"==typeof this.subgroupOrderer){for(var t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(e,t){return e.sortField-t.sortField})}else if("function"==typeof this.subgroupOrderer){for(var t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(0d}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sd})}for(s=0;st.right&&e.top-i.vertical+.001t.top:e.left-i.horizontal+.001t.left&&e.top-i.vertical+.001t.top}},function(e,t,i){function o(e,t,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,e){if(null==e.start)throw new Error('Property "start" missing in item '+e.id);if(null==e.end)throw new Error('Property "end" missing in item '+e.id)}n.call(this,e,t,i)}var n=(i(20),i(39));(o.prototype=new n(null,null,null)).baseClassName="vis-item vis-range",o.prototype.isVisible=function(e){return this.data.starte.start},o.prototype.redraw=function(){var e=this.dom;if(e||(this.dom={},(e=this.dom).box=document.createElement("div"),e.frame=document.createElement("div"),e.frame.className="vis-item-overflow",e.box.appendChild(e.frame),e.content=document.createElement("div"),e.content.className="vis-item-content",e.frame.appendChild(e.content),(e.box["timeline-item"]=this).dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!e.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(e.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||!0===this.editable)&&!1!==this.editable,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");e.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(e.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(e.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var e=this.dom.box;e.parentNode&&e.parentNode.removeChild(e),this.displayed=!1}},o.prototype.repositionX=function(e){var t,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);void 0!==e&&!0!==e||(n<-o&&(n=-o),2*oe.start-t&&this.data.starte.start-t&&this.data.starte.start},o.prototype.redraw=function(){var e=this.dom;if(e||(this.dom={},(e=this.dom).box=document.createElement("div"),e.frame=document.createElement("div"),e.frame.className="vis-item-overflow",e.box.appendChild(e.frame),e.content=document.createElement("div"),e.content.className="vis-item-content",e.frame.appendChild(e.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!e.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(e.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");e.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(e.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=s.prototype.show,o.prototype.hide=s.prototype.hide,o.prototype.repositionX=s.prototype.repositionX,o.prototype.repositionY=function(e){var t,i="top"===this.options.orientation.item;if(this.dom.content.style.top=i?"":"0",this.dom.content.style.bottom=i?"0":"",void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,s=n[o].index;if(1==i){t=this.parent.subgroups[o].height+e.item.vertical,t+=0==s?e.axis-.5*e.item.vertical:0;var r=this.parent.top;for(var a in n)n.hasOwnProperty(a)&&1==n[a].visible&&n[a].indexs&&(r+=l)}t=this.parent.subgroups[o].height+e.item.vertical,this.dom.box.style.top=this.parent.height-h+r+"px",this.dom.box.style.bottom=""}}else this.parent instanceof d?(t=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=i?"0":"",this.dom.box.style.bottom=i?"":"0"):(t=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=t+"px"},e.exports=o},function(e,t,i){function o(e,t){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:k.FORMAT,moment:r,timeAxis:null},this.options=x.extend({},this.defaultOptions),this.body=e,this._create(),this.setOptions(t)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},x=i(1),s=i(31),k=i(35),S=i(32),r=i(2);(o.prototype=new s).setOptions=function(e){e&&(x.selectiveExtend(["showMinorLabels","showMajorLabels","maxMinorChars","hiddenDates","timeAxis","moment","rtl"],this.options,e),x.selectiveDeepExtend(["format"],this.options,e),"orientation"in e&&("string"==typeof e.orientation?this.options.orientation.axis=e.orientation:"object"===n(e.orientation)&&"axis"in e.orientation&&(this.options.orientation.axis=e.orientation.axis)),"locale"in e&&("function"==typeof r.locale?r.locale(e.locale):r.lang(e.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var e=this.props,t=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=t.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;e.minorLabelHeight=s?e.minorCharHeight:0,e.majorLabelHeight=r?e.majorCharHeight:0,e.height=e.minorLabelHeight+e.majorLabelHeight,e.width=t.offsetWidth,e.minorLineHeight=this.body.domProps.root.height-e.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),e.minorLineWidth=1,e.majorLineHeight=e.minorLineHeight+e.majorLabelHeight,e.majorLineWidth=1;var a=t.nextSibling,h=i.nextSibling;return t.parentNode&&t.parentNode.removeChild(t),i.parentNode&&i.parentNode.removeChild(i),t.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(t,a):o.appendChild(t),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var e=this.options.orientation.axis,t=x.convert(this.body.range.start,"Number"),i=x.convert(this.body.range.end,"Number"),o=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),n=o-S.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);n-=this.body.util.toTime(0).valueOf();var s=new k(new Date(t),new Date(i),n,this.body.hiddenDates);s.setMoment(this.options.moment),this.options.format&&s.setFormat(this.options.format),this.options.timeAxis&&s.setScale(this.options.timeAxis),this.step=s;var r=this.dom;r.redundant.lines=r.lines,r.redundant.majorTexts=r.majorTexts,r.redundant.minorTexts=r.minorTexts,r.lines=[],r.majorTexts=[],r.minorTexts=[];var a,h,l,d,c,u,p,f=0,m=void 0,g=0;for(s.start(),a=s.getCurrent(),l=this.body.util.toScreen(a);s.hasNext()&&g<1e3;){g++,d=s.isMajor(),p=s.getClassName(),u=s.getLabelMinor(),a,h=l,s.next(),a=s.getCurrent(),s.isMajor();var v=.4*f<=(f=(l=this.body.util.toScreen(a))-h);if(this.options.showMinorLabels&&v){var y=this._repaintMinorText(h,u,e,p);y.style.width=f+"px"}d&&this.options.showMajorLabels?(0e[a].x){r=t[h],s=0==h?r:t[h-1],i=h;break}}void 0===r&&(s=t[t.length-1],r=t[t.length-1]),o=r.x-s.x,n=r.y-s.y,e[a].y=0==o?e[a].orginalY+r.y:e[a].orginalY+n/o*(e[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(e,t,i,o){var n,s,r,a;if(0this.width-r&&!0===this.options.visible?(this.width=this.maxLabelSize+r,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+r),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),!1)},o.prototype.convertValue=function(e){return this.scale.convertValue(e)},o.prototype.screenToValue=function(e){return this.scale.screenToValue(e)},o.prototype._redrawLabel=function(e,t,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=t,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=e-.5*n+this.options.labelOffsetY+"px",t+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSizel.magnitudefactor*l.minorSteps[l.minorStepIdx]*.5?t+l.magnitudefactor*l.minorSteps[l.minorStepIdx]:t}var l=this;i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=h(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=h(this._end)),this.determineScale()}}i.prototype.setCharHeight=function(e){this.majorCharHeight=e},i.prototype.setHeight=function(e){this.containerHeight=e},i.prototype.determineScale=function(){var e=this._end-this._start;this.scale=this.containerHeight/e;var t=this.majorCharHeight/this.scale,i=0s+1e-5)i(),l=!1;else{if(!this.autoScaleStart&&this._startt.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(e){this.zeroPosition=e},o.prototype.setOptions=function(e){if(void 0!==e){s.selectiveDeepExtend(["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"],this.options,e),"function"==typeof e.drawPoints&&(e.drawPoints={onRender:e.drawPoints}),s.mergeOptions(this.options,e,"interpolation"),s.mergeOptions(this.options,e,"drawPoints"),s.mergeOptions(this.options,e,"shaded"),e.interpolation&&"object"==n(e.interpolation)&&e.interpolation.parametrization&&("uniform"==e.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==e.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(e){this.group=e,this.content=e.content||"graph",this.className=e.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===e.visible||e.visible,this.style=e.style,this.setOptions(e.options)},o.prototype.getLegend=function(e,t,i,o,n){null!=i&&null!=i||(i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]});switch(null!=o&&null!=o||(o=0),null!=n&&null!=n||(n=.5*t),this.options.style){case"line":a.drawIcon(this,o,n,e,t,i);break;case"points":case"point":h.drawIcon(this,o,n,e,t,i);break;case"bar":r.drawIcon(this,o,n,e,t,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(e){for(var t=e[0].y,i=e[0].y,o=0;oe[o].y?e[o].y:t,i=it[s].screen_y?t[s].screen_y:o,n=ne[r].accumulatedNegative?e[r].accumulatedNegative:o)>e[r].accumulatedPositive?e[r].accumulatedPositive:o,n=(n=n")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var e=Object.keys(this.groups);e.sort(function(e,t){return ee.left&&this.shape.tope.top}},{key:"isBoundingBoxOverlappingWith",value:function(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}}],[{key:"parseOptions",value:function(e,t){var i=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3];if(w.selectiveNotDeepExtend(["color","font","fixed","shadow"],e,t,i),w.mergeOptions(e,t,"shadow",i,o),void 0!==t.color&&null!==t.color){var n=w.parseColor(t.color);w.fillIfDefined(e.color,n)}else!0===i&&null===t.color&&(e.color=w.bridgeObject(o.color));void 0!==t.fixed&&null!==t.fixed&&("boolean"==typeof t.fixed?(e.fixed.x=t.fixed,e.fixed.y=t.fixed):(void 0!==t.fixed.x&&"boolean"==typeof t.fixed.x&&(e.fixed.x=t.fixed.x),void 0!==t.fixed.y&&"boolean"==typeof t.fixed.y&&(e.fixed.y=t.fixed.y))),void 0!==t.font&&null!==t.font?s.default.parseOptions(e.font,t):!0===i&&null===t.font&&(e.font=w.bridgeObject(o.font)),void 0!==t.scaling&&w.mergeOptions(e.scaling,t.scaling,"label",i,o.scaling)}}]),x);function x(e,t,i,o,n){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,x),this.options=w.bridgeObject(n),this.globalOptions=n,this.body=t,this.edges=[],this.id=void 0,this.imagelist=i,this.grouplist=o,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new s.default(this.body,this.options,!1),this.setOptions(e)}function k(e,t){for(var i=0;i=this.nodeOptions.scaling.label.maxVisible&&(s=Number(this.nodeOptions.scaling.label.maxVisible)/this.body.view.scale);var a=this.size.yLine,h=this._getColor(r),l=m(h,2),d=l[0],c=l[1],u=this._setAlignment(e,i,a,n),p=m(u,2);i=p[0],a=p[1],e.font=(t&&this.nodeOptions.labelHighlightBold?"bold ":"")+s+"px "+this.fontOptions.face,e.fillStyle=d,this.isEdgeLabel||"left"!==this.fontOptions.align?e.textAlign="center":(e.textAlign=this.fontOptions.align,i-=.5*this.size.width),0this.imageObj.height?(i=this.imageObj.width/this.imageObj.height,e=2*this.options.size*i||this.imageObj.width,2*this.options.size||this.imageObj.height):(i=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,e=2*this.options.size,2*this.options.size*i):(e=this.imageObj.width,this.imageObj.height),this.width=e,this.height=t,this.radius=.5*this.width)}},{key:"_drawRawCircle",value:function(e,t,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;e.lineWidth=Math.min(this.width,h),e.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,e.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,e.circle(t,i,s),this.enableShadow(e),e.fill(),this.disableShadow(e),e.save(),0i.shape.height?(r=i.x+.5*i.shape.width,i.y-h):(r=i.x+h,i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(e,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(e){if(this.connected){var t=this.from.x,i=this.from.y,o=this.to.x,n=this.to.y,s=e.left,r=e.top;return this.edgeType.getDistanceToEdge(t,i,o,n,s,r)<10}return!1}},{key:"_rotateForLabelAlignment",value:function(e){var t=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(t,i);(o<-1&&i<0||0Math.abs(t)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*e,this.to.x+r*e):(o=this.from.y-r*t,s=this.to.y+r*t,i=this.from.x,this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t)}},{key:"_getDistanceToEdge",value:function(e,t,i,o,n,s){var r=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],a=d(r,2),h=a[0],l=a[1];return this._getDistanceToBezierEdge(e,t,i,o,n,s,h,l)}},{key:"getPoint",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=d(t,2),o=i[0],n=i[1],s=e,r=[];return r[0]=Math.pow(1-s,3),r[1]=3*s*Math.pow(1-s,2),r[2]=3*Math.pow(s,2)*(1-s),r[3]=Math.pow(s,3),{x:r[0]*this.fromPoint.x+r[1]*o.x+r[2]*n.x+r[3]*this.toPoint.x,y:r[0]*this.fromPoint.y+r[1]*o.y+r[2]*n.y+r[3]*this.toPoint.y}}}]),a);function a(e,t,i){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,Object.getPrototypeOf(a).call(this,e,t,i))}function h(e,t){for(var i=0;io.shape.height?(t=o.x+.5*o.shape.width,o.y-n):(t=o.x+n,o.y-.5*o.shape.height),[t,i,n]}},{key:"_pointOnCircle",value:function(e,t,i,o){var n=2*o*Math.PI;return{x:e+i*Math.cos(n),y:t-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(e,t,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=0,l=this.options.selfReferenceSize,d=void 0,c=void 0,u=void 0,p=.5*(s+r);s<=r&&h<10&&(p=.5*(s+r),d=this._pointOnCircle(o,n,l,p),c=Math.atan2(e.y-d.y,e.x-d.x),u=e.distanceToBorder(t,c)-Math.sqrt(Math.pow(d.x-e.x,2)+Math.pow(d.y-e.y,2)),!(Math.abs(u)<.05));)0n&&this.labelModule.size.tops?0:a}},{key:"_getDistanceToLine",value:function(e,t,i,o,n,s){var r=i-e,a=o-t,h=((n-e)*r+(s-t)*a)/(r*r+a*a);1=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*s,t=this.from.y-i*s):this.from.x>this.to.x&&(e=this.from.x-i*s,t=this.from.y-i*s):this.from.ythis.to.x&&(e=this.from.x-i*s,t=this.from.y+i*s)),"discrete"===o&&(e=nMath.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*n,t=this.from.y-i*n):this.from.x>this.to.x&&(e=this.from.x-i*n,t=this.from.y-i*n):this.from.ythis.to.x&&(e=this.from.x-i*n,t=this.from.y+i*n)),"discrete"===o&&(t=sMath.abs(this.from.y-this.to.y)&&(e=this.from.x=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*s,t=this.from.y-i*s,e=this.to.xthis.to.x&&(e=this.from.x-i*s,t=this.from.y-i*s,e=this.to.x>e?this.to.x:e):this.from.ythis.to.x&&(e=this.from.x-i*s,t=this.from.y+i*s,e=this.to.x>e?this.to.x:e)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*n,t=this.from.y-i*n,t=this.to.y>t?this.to.y:t):this.from.x>this.to.x&&(e=this.from.x-i*n,t=this.from.y-i*n,t=this.to.y>t?this.to.y:t):this.from.ythis.to.x&&(e=this.from.x-i*n,t=this.from.y+i*n,t=this.to.yt?0t?0this.thetaInversed?this._calculateForces(n,i,o,t,e):4===e.childrenCount?(this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)):e.children.data.id!=t.id&&this._calculateForces(n,i,o,t,e))}},{key:"_calculateForces",value:function(e,t,i,o,n){0===e&&(t=e=.1),this.overlapAvoidanceFactor<1&&(e=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,e-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(e,3),r=t*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(e,t){for(var i=void 0,o=t.length,n=e[t[0]].x,s=e[t[0]].y,r=e[t[0]].x,a=e[t[0]].y,h=1;ht.x?e.children.NW.range.maxY>t.y?this._placeInRegion(e,t,"NW"):this._placeInRegion(e,t,"SW"):e.children.NW.range.maxY>t.y?this._placeInRegion(e,t,"NE"):this._placeInRegion(e,t,"SE")}},{key:"_placeInRegion",value:function(e,t,i){switch(e.children[i].childrenCount){case 0:e.children[i].children.data=t,e.children[i].childrenCount=1,this._updateBranchMass(e.children[i],t);break;case 1:e.children[i].children.data.x===t.x&&e.children[i].children.data.y===t.y?(t.x+=this.seededRandom(),t.y+=this.seededRandom()):(this._splitBranch(e.children[i]),this._placeInTree(e.children[i],t));break;case 4:this._placeInTree(e.children[i],t)}}},{key:"_splitBranch",value:function(e){var t=null;1===e.childrenCount&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),null!=t&&this._placeInTree(e,t)}},{key:"_insertRegion",value:function(e,t){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*e.size;switch(t){case"NW":i=e.range.minX,o=e.range.minX+r,n=e.range.minY,s=e.range.minY+r;break;case"NE":i=e.range.minX+r,o=e.range.maxX,n=e.range.minY,s=e.range.minY+r;break;case"SW":i=e.range.minX,o=e.range.minX+r,n=e.range.minY+r,s=e.range.maxY;break;case"SE":i=e.range.minX+r,o=e.range.maxX,n=e.range.minY+r,s=e.range.maxY}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}},{key:"_debug",value:function(e,t){void 0!==this.barnesHutTree&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}},{key:"_drawBranch",value:function(e,t,i){void 0===i&&(i="#FF0000"),4===e.childrenCount&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}]),o);function o(e,t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,o),this.body=e,this.physicsBody=t,this.barnesHutTree,this.setOptions(i),this.randomSeed=5}function n(e,t){for(var i=0;i=e&&i.push(n.id)}for(var s=0;so?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]||arguments[2];if(void 0===e)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[e])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0!==this.body.nodes[e].containedNodes){var o=this.body.nodes[e],n=o.containedNodes,s=o.containedEdges;if(void 0!==t&&void 0!==t.releaseFunction&&"function"==typeof t.releaseFunction){var r={},a={x:o.x,y:o.y};for(var h in n)if(n.hasOwnProperty(h)){var l=this.body.nodes[h];r[h]={x:l.x,y:l.y}}var d=t.releaseFunction(a,r);for(var c in n)if(n.hasOwnProperty(c)){var u=this.body.nodes[c];void 0!==d[c]&&(u.x=void 0===d[c].x?o.x:d[c].x,u.y=void 0===d[c].y?o.y:d[c].y)}}else for(var p in n)if(n.hasOwnProperty(p)){var f=this.body.nodes[p];!1===(f=n[p]).options.fixed.x&&(f.x=o.x),!1===f.options.fixed.y&&(f.y=o.y)}for(var m in n)if(n.hasOwnProperty(m)){var g=this.body.nodes[m];g.vx=o.vx,g.vy=o.vy,g.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[m]}for(var v=[],y=0;yo&&(o=s.edges.length),e+=s.edges.length,t+=Math.pow(s.edges.length,2),i+=1}e/=i;var r=(t/=i)-Math.pow(e,2),a=Math.sqrt(r),h=Math.floor(e+2*a);return o(t=e[i[a]]).shape.boundingBox.left&&(s=t.shape.boundingBox.left),rt.shape.boundingBox.top&&(o=t.shape.boundingBox.top),n(t=e[i[a]]).x&&(s=t.x),rt.y&&(o=t.y),n.5*this.body.nodeIndices.length)return void this.fit(e,!1);i=c.default.getRange(this.body.nodes,e.nodes),o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822,o*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=c.default.getRange(this.body.nodes,e.nodes);var r=1.1*Math.abs(i.maxX-i.minX),a=1.1*Math.abs(i.maxY-i.minY),h=this.canvas.frame.canvas.clientWidth/r,l=this.canvas.frame.canvas.clientHeight/a;o=h<=l?h:l}1o&&(s=o-t-this.padding),sn&&(r=n-i-this.padding),rO.options.hierarchical.nodeSpacing){var s={};s[e.id]=!0;var r={};r[t.id]=!0,k(e,s),k(t,r);var a=function(e,t){var i=g(e.id),o=g(t.id);return Math.min(i,o)}(e,t),h=S(s,a),l=D(h,4),d=(l[0],l[1]),c=(l[2],l[3],S(r,a)),u=D(c,4),p=u[0],f=(u[1],u[2]);if(u[3],Math.abs(d-p)>O.options.hierarchical.nodeSpacing){var m=d-p+O.options.hierarchical.nodeSpacing;m<-f+O.options.hierarchical.nodeSpacing&&(m=-f+O.options.hierarchical.nodeSpacing),m<0&&(O._shiftBlock(t.id,m),(C=!0)===i&&O._centerParent(t))}}}function h(e,l){for(var t=l.id,i=l.edges,o=O.hierarchicalLevels[l.id],s=O.options.hierarchical.levelSeparation*O.options.hierarchical.levelSeparation,r={},n=[],a=0;an.hierarchicalLevels[e.id]){var i=e.id,o=t.id;void 0===n.hierarchicalChildrenReference[i]&&(n.hierarchicalChildrenReference[i]=[]),n.hierarchicalChildrenReference[i].push(o),void 0===n.hierarchicalParentReference[o]&&(n.hierarchicalParentReference[o]=[]),n.hierarchicalParentReference[o].push(i)}})}},{key:"_crawlNetwork",value:function(){function n(e,t){if(void 0===a[e.id]){void 0===s.hierarchicalTrees[e.id]&&(s.hierarchicalTrees[e.id]=t,s.treeIndex=Math.max(t,s.treeIndex)),a[e.id]=!0;for(var i=void 0,o=0;o"===D||"--"===D;){var i,o=D;c();var n=f(e);if(n)i=n;else{if(E!=k.IDENTIFIER)throw v("Identifier or subgraph expected");a(e,{id:i=D}),c()}l(e,d(e,t,i,o,g())),t=i}}function g(){for(var e=null;"["===D;){for(c(),e={};""!==D&&"]"!=D;){if(E!=k.IDENTIFIER)throw v("Attribute name expected");var t=D;if(c(),"="!=D)throw v("Equal sign = expected");if(c(),E!=k.IDENTIFIER)throw v("Attribute value expected");r(e,t,D),c(),","==D&&c()}if("]"!=D)throw v("Bracket ] expected");c()}return e}function v(e){return new SyntaxError(e+', got "'+y(D,30)+'" (char '+C+")")}function y(e,t){return e.length<=t?e:e.substr(0,27)+"..."}function b(e,t,i){for(var o=t.split("."),n=o.pop(),s=e,r=0;r":!0,"--":!0},O="",C=0,M="",D="",E=k.NULL,T=/[a-zA-Z_0-9.:#]/;t.parseDOT=i,t.DOTToGraph=function(e){var t=i(e),s={nodes:[],edges:[],options:{}};if(t.nodes&&t.nodes.forEach(function(e){var t={id:e.id,label:String(e.label||e.id)};h(t,w(e.attr,_)),t.image&&(t.shape="image"),s.nodes.push(t)}),t.edges){function r(e){var t={from:e.from,to:e.to};return h(t,w(e.attr,x)),t.arrows="->"===e.type?"to":void 0,t}t.edges.forEach(function(n){var e,t;e=n.from instanceof Object?n.from.nodes:{id:n.from},t=n.to instanceof Object?n.to.nodes:{id:n.to},n.from instanceof Object&&n.from.edges&&n.from.edges.forEach(function(e){var t=r(e);s.edges.push(t)}),function(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}(e,t,function(e,t){var i=d(s,e.id,t.id,n.type,n.attr),o=r(i);s.edges.push(o)}),n.to instanceof Object&&n.to.edges&&n.to.edges.forEach(function(e){var t=r(e);s.edges.push(t)})})}return t.attr&&(s.options=t.attr),s}},function(e,t){t.parseGephi=function(e,t){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==t&&(void 0!==t.fixed&&(n.nodes.fixed=t.fixed),void 0!==t.parseColor&&(n.nodes.parseColor=t.parseColor),void 0!==t.inheritColor&&(n.edges.inheritColor=t.inheritColor));for(var s=e.edges,r=e.nodes,a=0;a

{{ heading }}

'}}),angular.module("styleguideComponentsModule").directive("buttonIconLink",function(){return{restrict:"E",replace:!0,scope:{buttonLink:"@",icon:"@",click:"&"},template:''}}),angular.module("styleguideComponentsModule").directive("contentList",function(){return{restrict:"E",replace:!0,scope:{items:"=",max:"=",filter:"=",order:"="},template:'
'}}),angular.module("styleguideComponentsModule").directive("contentListItem",function(){return{restrict:"E",replace:!0,scope:{item:"="},template:'
{{ item.title }}{{ item.title }}{{ item.text }}
'}}),angular.module("styleguideComponentsModule").directive("panelMenu",["$document",function(e){return{restrict:"E",replace:!0,scope:{items:"="},link:function(t){function i(e){t.$apply(function(){t.menuOpen=!1,document.removeEventListener("click",i)})}t.menuOpen=!1,t.toggleMenu=function(){t.menuOpen=!t.menuOpen,setTimeout(function(){t.menuOpen&&document.addEventListener("click",i)})}},template:'
more_vert
'}}]),angular.module("styleguideComponentsModule").directive("popup",function(){return{restrict:"E",replace:!0,transclude:!0,template:''}}),angular.module("ikShared").factory("mediaFactory",["$http","$q","busService",function(o,n,s){"use strict";var e={getAllMedia:function(){var t=n.defer();return o.get("/api/media").success(function(e){t.resolve(e)}).error(function(){t.reject()}),t.promise},searchMedia:function(e){var i=n.defer();e.type="Os2Display\\MediaBundle\\Entity\\Media";var t=CryptoJS.MD5(JSON.stringify(e)).toString();return e.callbacks={hits:"searchService.hits-"+t,error:"searchService.error-"+t},s.$once(e.callbacks.hits,function(e,t){i.resolve(t)}),s.$once(e.callbacks.error,function(e,t){s.$emit("log.error",{cause:t,msg:"Kunne ikke hente søgeresultater."}),i.reject(t)}),s.$emit("searchService.request",e),i.promise},loadMediaBulk:function(e){var i=n.defer(),t="?ids[]="+e.join("&ids[]=");return o.get("/api/bulk/media/api"+t).success(function(e,t){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise},getMedia:function(e){var i=n.defer();return o.get("/api/media/"+e).success(function(e){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise},updateMedia:function(e){var i=n.defer();return o.put("/api/media/"+e.id,e).success(function(e){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise},deleteMedia:function(e){var i=n.defer();return o.delete("/api/media/"+e).success(function(e){i.resolve(e)}).error(function(e,t){i.reject(t)}),i.promise}};return e}]),angular.module("ikShared").factory("templateFactory",["$q","$http",function(n,o){"use strict";var e={},s=OS2DISPLAY_TEMPLATES.slides,r=OS2DISPLAY_TEMPLATES.screens;return e.getSlideTemplates=function(){var i=n.defer();return null!==s?i.resolve(s):o.get("/api/templates/slides/all").success(function(e){s=e,i.resolve(s)}).error(function(e,t){i.reject(t)}),i.promise},e.getSlideTemplate=function(i){var o=n.defer();return e.getSlideTemplates().then(function(e){for(var t=0;t link[href='"+e.css_path+"']")||$("head").append('')}))}),t.play=function(){angular.isDefined(t.interval)?(e.cancel(t.interval),t.interval=void 0,t.buttonState="play"):(t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length,t.interval=e(function(){t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length},2e3),t.buttonState="pause")},t.redirectToChannel=function(){t.ikClickable&&i.path("/shared-channel/"+t.ikChannel.unique_id+"/"+t.ikSharingIndex)},t.$on("$destroy",function(){angular.isDefined(t.interval)&&(e.cancel(t.interval),t.interval=void 0)})},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/sharedChannel/shared-channel-template.html?"+window.config.version}}]),angular.module("ikShared").directive("sharedChannelOverview",["sharedChannelFactory","userService","$timeout","busService",function(e,t,i,n){"use strict";return{restrict:"E",scope:{ikSelectedChannels:"=",ikOverlay:"@",ikSingleSlide:"="},link:function(o){o.index={},o.loading=!1,o.pickIndexDialog=!1,o.displaySharingOption=window.config.sharingService.enabled,o.sharingIndexes=[],e.getSharingIndexes().then(function(e){o.sharingIndexes=e}),o.sort={created_at:"desc"},o.currentUser=t.getCurrentUser(),o.showFromUser=localStorage.getItem("overview.shared_channel.search_filter_default")?localStorage.getItem("overview.shared_channel.search_filter_default"):"all",o.pager={size:6,page:0},o.hits=0,o.channels=[];var i={fields:"title",text:"",filter:{bool:{must:{}}},sort:{created_at:{order:"desc"}},pager:o.pager};o.updateSearch=function(){i.text=o.search_text,angular.isUndefined(o.index.index)?n.$emit("log.info",{msg:"Du skal vælge et indeks først.",timeout:3e3}):(o.loading=!0,e.searchChannels(i,o.index.index).then(function(e){o.loading=!1,o.hits=e.hits,o.channels=e.results},function(e){n.$emit("log.error",{cause:e,msg:"Hentning af søgeresultater fejlede."}),o.loading=!1}))},o.$on("channel-deleted",function(){o.updateSearch()}),o.channelSelected=function(t){if(!o.ikSelectedChannels)return!1;var i=!1;return o.ikSelectedChannels.forEach(function(e){e.unique_id==t.unique_id&&(i=!0)}),i},o.clickSharedChannel=function(e,t){o.$emit("channelSharingOverview.clickSharedChannel",e,t)},o.setIndex=function(e){o.index=e,o.pickIndexDialog=!1,o.updateSearch()},o.setUser=function(e){localStorage.setItem("overview.shared_channel.search_filter_default",e),o.showFromUser!==e&&(o.showFromUser=e,o.updateSearch())},o.setSearchFilters=function(){if(delete i.filter,"all"!==o.showFromUser&&(i.filter={bool:{must:[]}}),"all"!==o.showFromUser){var e={};e.term={user:o.currentUser.id},i.filter.bool.must.push(e)}o.updateSearch()},o.setSort=function(e,t){void 0!==o.sort[e]&&o.sort[e]===t||(o.sort={},o.sort[e]=t,i.sort={},i.sort[e]={order:t},o.updateSearch())}},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/sharedChannelOverview/shared-channel-overview.html?"+window.config.version}}]),angular.module("ikShared").directive("ikChannel",["$interval","$location",function(o,n){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikChannel:"=",ikSingleSlide:"=",ikClickable:"="},link:function(t,e,i){t.slideIndex=0,t.playText="",i.$observe("ikChannel",function(e){e&&(t.ikChannel.slides.length<=0?t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/channel/empty.html?"+window.config.version:(t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/channel/non-empty.html?"+window.config.version,t.buttonState="play"))}),t.play=function(){angular.isDefined(t.interval)?(o.cancel(t.interval),t.interval=void 0,t.buttonState="play"):(t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length,t.interval=o(function(){t.slideIndex=(t.slideIndex+1)%t.ikChannel.slides.length},2e3),t.buttonState="pause")},t.redirectToChannel=function(){t.ikClickable&&n.path("/channel/"+t.ikChannel.id)},t.$on("$destroy",function(){angular.isDefined(t.interval)&&(o.cancel(t.interval),t.interval=void 0)})},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/channel/channel-template.html?"+window.config.version}}]),angular.module("ikShared").directive("ikChannelOverview",["busService",function(a){"use strict";return{restrict:"E",scope:{ikSelectedChannels:"=",ikOverlay:"@"},controller:["$scope","$filter","$controller","channelFactory",function(o,n,e,s){e("BaseSearchController",{$scope:o}),o.showFromUser=localStorage.getItem("overview.channel.search_filter_default")?localStorage.getItem("overview.channel.search_filter_default"):"all",o.displaySharingOption=window.config.sharingService.enabled,o.channels=[];var r=null;o.updateSearch=function(){o.baseQuery.text=o.search_text,o.loading=!0,s.searchChannels(o.baseQuery).then(function(e){o.hits=e.hits;for(var t=[],i=0;ie.publish_to)return!1;if(e.hasOwnProperty("schedule_repeat")&&e.schedule_repeat){if(!(e.hasOwnProperty("schedule_repeat_days")&&0e.schedule_repeat_to)return!1}}return!0},o.getScheduledText=function(e){var t="";if(e.hasOwnProperty("publish_from")&&(t=t+"Udgivet fra: "+n("date")(1e3*e.publish_from,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("publish_to")&&(t=t+"Udgivet til: "+n("date")(1e3*e.publish_to,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("schedule_repeat")&&e.schedule_repeat){t+="Vises disse dage:
";for(var i=0;i"),e.hasOwnProperty("schedule_repeat_to")&&(t=t+"Til: "+e.schedule_repeat_to+":00
")}return t},o.setSearchFilters()}],templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/channelOverview/channel-overview-directive.html?"+window.config.version}}]),angular.module("ikShared").directive("ikPager",[function(){"use strict";return{restrict:"E",replace:!0,scope:!0,controller:["$scope",function(o){o.pagesFrom=0,o.pagesPerLine=10,o.changePage=function(e){o.pager.page=e,o.updateSearch(),o.pagesFrom=Math.floor(o.pager.page/o.pagesPerLine)*o.pagesPerLine},o.prevPage=function(){0=o.pager.max&&(o.pager.page=o.pager.max-1),o.updateSearch()),o.pagesFrom=Math.floor(o.pager.page/o.pagesPerLine)*o.pagesPerLine},o.$watch("hits",function(e){var t=[];if(o.pager.max=0,e>o.pager.size){o.pager.max=Math.ceil(e/o.pager.size);for(var i=0;iDate.now())},n.slideOverviewClickSlide=function(e){n.$emit("slideOverview.clickSlide",e)},n.slideScheduledNow=function(e){if(!e.published)return!1;var t=new Date;return t=parseInt(t.getTime()/1e3),!(e.hasOwnProperty("schedule_from")&&te.schedule_to)},n.getScheduledText=function(e){var t="";return e.published||(t+="Ikke udgivet!
"),e.hasOwnProperty("schedule_from")&&(t=t+"Udgivet fra: "+i("date")(1e3*e.schedule_from,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("schedule_to")&&(t=t+"Udgivet til: "+i("date")(1e3*e.schedule_to,"dd/MM/yyyy HH:mm")+"."),t},n.setSearchFilters()}],templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/slideOverview/slide-overview-directive.html?"+window.config.version}}]),angular.module("ikShared").directive("ikSlide",["slideFactory","templateFactory",function(e,o){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikSlide:"="},link:function(t,e,i){t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/slide/slide-loading.html?"+window.config.version,i.$observe("ikSlide",function(e){e&&("image"===t.ikSlide.media_type?0{{ slideError }}
'}}]),angular.module("ikShared").directive("ikSlideEditable",["templateFactory","$timeout",function(t,n){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikSlide:"="},link:function(i,o,e){i.templateURL="bundles/os2displayadmin/apps/ikShared/elements/slide/slide-loading.html?"+window.config.version,i.$watch("ikSlide",function(e,t){e&&("image"===i.ikSlide.media_type?(i.ikSlide.currentImage="",0{{ slideError }}
'}}]),angular.module("ikShared").directive("ikSharedSlide",[function(){"use strict";return{restrict:"E",scope:{ikWidth:"@",ikSlide:"="},link:function(t,e,i){t.templateURL="bundles/os2displayadmin/apps/ikShared/elements/slide/slide-loading.html?"+window.config.version,i.$observe("ikSlide",function(e){e&&(t.ikSlide.media_thumbs&&0'}}]),angular.module("ikShared").directive("ikScreenOverview",["busService",function(e){"use strict";return{restrict:"E",scope:{ikSelectedScreens:"=",ikOverlay:"@"},controller:["$scope","$filter","$controller","screenFactory","userService","busService",function(o,t,e,n,i,s){e("BaseSearchController",{$scope:o}),o.showFromUser=localStorage.getItem("overview.media.search_filter_default")?localStorage.getItem("overview.media.search_filter_default"):"all",o.screens=[];var r=null;o.updateSearch=function(){o.baseQuery.text=o.search_text,o.loading=!0,n.searchScreens(o.baseQuery).then(function(e){o.hits=e.hits;for(var t=[],i=0;i",link:function(e,t,i){if(a){var o=e.$eval(i.ikThumb);if(h(o.file)&&l(o.file)){var n=t.find("canvas"),s=new FileReader;s.onload=function(e){var t=new Image;t.onload=r,t.src=e.target.result},s.readAsDataURL(o.file)}}function r(){var e=o.width?o.width:this.width/this.height*o.height,t=o.height?o.height:this.height/this.width*o.width;n.attr({width:e,height:t}),n[0].getContext("2d").drawImage(this,0,0,e,t)}}}}]),angular.module("ikShared").directive("autoGrow",function(){"use strict";return{restrict:"A",scope:{fontSize:"@"},link:function(e,t){function i(e){e.css("height","0px");var t=e.prop("scrollHeight"),i=e.css("min-height").replace("px","");e.css("height",Math.max(t,i)+"px")}var o=$(t);t.bind("keyup",function(){i(o)}),e.$watch("fontSize",function(e){e&&i(o)}),setTimeout(function(){i(o)},100)}}}),angular.module("ikShared").directive("includeReplace",function(){"use strict";return{require:"ngInclude",restrict:"A",link:function(e,t){t.replaceWith(t.children())}}}),function(){"use strict";angular.module("itkControlPanel",[]).directive("controlPanel",["busService",function(e){return{restrict:"E",scope:{template:"=",data:"=",screen:"=",display:"=",saveAction:"&",region:"=",options:"="},replace:!0,link:function(t){t.selectedTab=null,e.$emit("bodyService.addClass","is-screen"),t.getContent=function(){return t.template},t.clickTab=function(e){t.selectedTab=e},t.toggleChannelType=function(e){t.channelType=e},t.$on("$destroy",function(){document.getElementsByTagName("body")[0].style.overflow=""})},template:'
'}}])}.call(this),function(){"use strict";angular.module("ngModal",[]).directive("modalDialog",[function(){return{restrict:"E",scope:{show:"=",onClose:"&?"},replace:!0,transclude:!0,link:function(i){i.hideModal=function(){i.show=!1},i.$watch("show",function(e,t){if(document.getElementsByTagName("body")[0].style.overflow=e&&!t?"hidden":"",!e&&t&&null!==i.onClose)return i.onClose()})},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/ngModal/ng-modal.html?"+window.config.version}}])}.call(this),angular.module("ikShared").directive("ikDisabledList",[function(){"use strict";return{restrict:"E",replace:!1,scope:{elements:"="},templateUrl:"bundles/os2displayadmin/apps/ikShared/elements/disabledList/disabled-list.html?"+window.config.version}}]),function(){"use strict";angular.module("itkScreenTemplatePickerWidget",[]).directive("screenTemplatePickerWidget",["templateFactory","busService",function(e,i){return{restrict:"E",scope:{screen:"="},replace:!0,link:function(t){t.templates=[],e.getEnabledScreenTemplates().then(function(e){t.templates=e},function(e){i.$emit("log.error",{cause:e,msg:"Kunne ikke loade templates."})}),t.pickTemplate=function(e){t.screen.template=angular.copy(e)}},templateUrl:"bundles/os2displayadmin/apps/ikShared/widgets/screenTemplatePickerWidget/screenTemplatePickerWidget.html?"+window.config.version}}])}.call(this),function(){"use strict";angular.module("itkTextWidget",[]).directive("textWidget",function(){return{restrict:"E",scope:{field:"=",placeholderText:"@"},replace:!0,template:''}})}.call(this),function(){"use strict";angular.module("itkTextAreaWidget",[]).directive("textAreaWidget",function(){return{restrict:"E",scope:{field:"=",placeholderText:"@"},replace:!0,template:''}})}.call(this),function(){"use strict";angular.module("itkNumberWidget",[]).directive("numberWidget",function(){return{restrict:"E",scope:{field:"=",placeholderText:"@"},replace:!0,template:''}})}.call(this),function(){"use strict";angular.module("itkChannelPickerWidget",[]).directive("channelPickerWidget",["userService","channelFactory","busService",function(t,n,s){return{restrict:"E",replace:!0,templateUrl:"bundles/os2displayadmin/apps/ikShared/widgets/channelPickerWidget/channel-picker-widget.html?"+window.config.version,scope:{screen:"=",region:"="},link:function(o){o.sharingEnabled=window.config.sharingService.enabled,o.loading=!1,o.showFromUser="all",o.sort={created_at:"desc"},o.selectedGroup=null,o.currentUser=t.getCurrentUser();var e=s.$on("itkChannelPickerWidget.currentUserGroups",function(e,t){o.userGroups=t});t.getCurrentUserGroups("itkChannelPickerWidget.currentUserGroups"),o.pager={size:5,page:0},o.hits=0,o.channels=[],o.search={fields:"title",text:"",filter:{bool:{must:[]}},sort:{created_at:{order:"desc"}},pager:o.pager},o.updateSearch=function(){var e=angular.copy(o.search);e.text=o.search_text,null!==o.selectedGroup&&e.filter.bool.must.push({terms:{groups:[o.selectedGroup.id]}}),o.loading=!0,n.searchChannels(e).then(function(e){o.hits=e.hits;for(var t=[],i=0;i=t?i.push(n):n.from&&n.from>=t&&i.push(n)}return i}}),angular.module("ikApp").controller("ScreenController",["$scope","$controller","$location","$routeParams","$timeout","screenFactory","channelFactory","sharedChannelFactory","templateFactory","busService","userService",function(t,e,i,o,n,s,r,a,h,l,d){"use strict";e("BaseEntityController",{$scope:t,entityType:"screen"}),t.loading=!0,t.sharingEnabled=window.config.sharingService.enabled,t.screen={},t.toolbarTemplate=null,t.display=!1,t.region=null,t.controlPanelData={userGroups:t.userGroups,baseUnavailableGroups:t.baseUnavailableGroups},t.$watch("userGroups",function(){t.controlPanelData.userGroups=t.userGroups}),t.$watch("baseUnavailableGroups",function(){t.controlPanelData.baseUnavailableGroups=t.baseUnavailableGroups}),o.id?null===o.id||void 0===o.id||""===o.id?i.path("/screen-overview"):s.getEditScreen(o.id).then(function(e){t.loading=!1,t.screen=e,t.screen.channel_screen_regions.forEach(function(e){e.shared_channel&&(e.shared_channel.content=JSON.parse(e.shared_channel.content),e.shared_channel.title=e.shared_channel.content.title,e.shared_channel.slides=e.shared_channel.content.slides)}),t.screen==={}&&i.path("/screen")},function(e){l.$emit("log.error",{cause:e,msg:"Skærmen med id: "+o.id+" blev ikke fundet"})}):(t.screen=s.emptyScreen(),h.getScreenTemplate("full-screen").then(function(e){t.screen.template=e,t.loading=!1},function(e){404===e&&h.getEnabledScreenTemplates().then(function(e){t.screen.template=angular.copy(e[0]),t.screen.orientation=e[0].orientation,t.loading=!1},function(e){l.$emit("log.error",{cause:e,msg:"Skabelonerne blev ikke loaded"})})})),t.saveScreenAndClose=function(){t.displayToolbar=!1,t.region=null,s.saveScreen().then(function(e){l.$emit("log.info",{msg:"Skærmen ("+e.title+") er gemt",timeout:5e3}),n(function(){i.path("/screen-overview")},1e3)},function(e){l.$emit("log.error",{cause:e,msg:"Skærmen blev ikke gemt"})})},t.saveScreen=function(){t.displayToolbar=!1,t.region=null,s.saveScreen().then(function(e){l.$emit("log.info",{msg:"Skærmen ("+e.title+") er gemt",timeout:5e3})},function(e){l.$emit("log.error",{cause:e,msg:"Skærmen blev ikke gemt"})})},t.triggerTool=function(e){t.screen.template.tools.hasOwnProperty(e.name)?t.toolbarTemplate=t.screen.template.tools[e.name]:t.toolbarTemplate="bundles/os2displayadmin/apps/ikShared/toolbars/"+e.name+".html?"+window.config.version,t.region=e.region,t.displayToolbar=!0}}]),angular.module("ikApp").controller("SharedChannelController",["$scope","$location","$routeParams","$timeout","screenFactory","sharedChannelFactory","busService",function(t,i,e,o,n,s,r){"use strict";function a(e){t.step=e,t.templatePath="bundles/os2displayadmin/apps/ikApp/pages/sharedChannel/shared-channel-step"+t.step+".html?"+window.config.version}t.steps=1,t.step=1,t.channel={},t.channel.slides=[],t.status="edit",n.getScreens().then(function(e){t.screens=e},function(e){r.$emit("log.error",{cause:e,msg:"Kunne ikke hente skærme."})}),e.id&&e.index?s.getSharedChannel(e.id,e.index).then(function(e){t.channel=JSON.parse(e.content),t.channel==={}&&i.path("/channel-sharing-overview"),a(1)},function(e){r.$emit("log.error",{cause:e,msg:"Delt kanal kunne ikke hentes."})}):i.path("/channel-sharing-overview"),t.submitStep=function(){i.path("/channel-sharing-overview")},t.goToStep=function(e){a(e)}}]),angular.module("ikApp").controller("AdminSharingController",["busService","sharedChannelFactory","$scope",function(t,e,i){"use strict";i.saving=!1,i.availableIndexes=[],e.getAvailableIndexes().then(function(e){e.forEach(function(e){"shared"===e.tag&&i.availableIndexes.push(e)})},function(e){t.$emit("log.error",{cause:e,msg:"Hentning af tilgængelige delingsindeks fejlede."})}),i.chosenIndexes=[],e.getSharingIndexes().then(function(e){i.chosenIndexes=e},function(e){t.$emit("log.error",{cause:e,msg:"Hentning af valgte delingsindeks fejlede."})}),i.save=function(){i.saving=!0,e.saveSharingIndexes(i.chosenIndexes).then(function(){t.$emit("log.info",{msg:"Delingsindeks gemt",timeout:3e3}),i.saving=!1},function(e){t.$emit("log.error",{cause:e,msg:"Delingsindeks blev ikke gemt."}),i.saving=!1})}}]),angular.module("ikApp").controller("AdminTemplatesController",["busService","templateFactory","$scope",function(t,e,o){"use strict";o.saving=!1,o.screenTemplates=[],o.slideTemplates=[],o.enabledScreenTemplates=[],o.enabledSlideTemplates=[],e.getScreenTemplates().then(function(e){o.screenTemplates=e;for(var t=[],i=0;ie.schedule_to)},n.getScheduledText=function(e){var t="";return e.published||(t+="Ikke udgivet!
"),e.hasOwnProperty("schedule_from")&&(t=t+"Udgivet fra: "+s("date")(1e3*e.schedule_from,"dd/MM/yyyy HH:mm")+".
"),e.hasOwnProperty("schedule_to")&&(t=t+"Udgivet til: "+s("date")(1e3*e.schedule_to,"dd/MM/yyyy HH:mm")+"."),t},n.goToStep=function(e){var t=1;n.validation.titleSet()&&(t+=3),e<=t&&d(e)},n.pushRight=function(e){e===n.channel.slides.length-1?c(n.channel.slides,e,0):c(n.channel.slides,e,e+1)},n.pushLeft=function(e){c(n.channel.slides,e,0===e?n.channel.slides.length-1:e-1)},n.handleDrop=function(e,t){e=parseInt(e.split("index-")[1]),t=parseInt(t.split("index-")[1]);var i=n.channel.slides.splice(e,1);n.channel.slides.splice(t,0,i[0])},n.sortSlides=function(e){var t=n.lastSortUsed===e;"random"!==(n.lastSortUsed=e)?n.channel.slides=s("orderBy")(n.channel.slides,t?"-":""+e):n.channel.slides=function(e){for(var t,i,o=e.length;0!==o;)i=Math.floor(Math.random()*o),t=e[o-=1],e[o]=e[i],e[i]=t;return e}(n.channel.slides)}}]),angular.module("ikApp").controller("ChannelOverviewController",["$scope","sharedChannelFactory","channelFactory","busService",function(i,e,o,n){"use strict";i.shareDialogShow=!1,i.shareDialogChannel=null,window.config.sharingService.enabled&&(i.$on("ikChannelShare.clickShare",function(e,t){i.shareDialogShow=!0,i.shareDialogChannel=t,o.getChannel(t.id).then(function(e){i.shareDialogChannel=e,i.shareDialogChannel.sharing_indexes||(i.shareDialogChannel.sharing_indexes=[])},function(e){n.$emit("log.error",{cause:e,msg:"Hentning af kanal fejlede"})})}),i.sharingIndexes=[],e.getSharingIndexes().then(function(e){i.sharingIndexes=e},function(e){n.$emit("log.error",{cause:e,msg:"Hentning af delingsindeks fejlede."})}),i.saveSharingChannel=function(){o.channelShare(i.shareDialogChannel).then(function(){n.$emit("log.info",{msg:"Delingskonfiguration af kanal lykkedes.",timeout:3e3})},function(e){n.$emit("log.error",{cause:e,msg:"Deling af kanal fejlede."})})})}]),angular.module("ikApp").controller("MediaOverviewController",["$scope","$location",function(e,i){"use strict";e.$on("mediaOverview.selectMedia",function(e,t){i.path("/media/"+t.id)})}]),angular.module("ikApp").controller("MediaEditController",["$scope","$controller","$location","$routeParams","$timeout","mediaFactory","busService","userService",function(t,e,i,o,n,s,r,a){"use strict";e("BaseEntityController",{$scope:t,entityType:"media"}),t.loading=!0,s.getMedia(o.id).then(function(e){n(function(){t.media=e,t.media==={}&&i.path("/media-overview")})},function(e){r.$emit("log.error",{cause:e,msg:"Kunne ikke hente media med id: "+o.id}),i.path("/media-overview")}).then(function(){t.loading=!1}),t.updateMedia=function(){t.loading=!0,s.updateMedia(t.media).then(function(){n(function(){r.$emit("log.info",{msg:"Media opdateret.",timeout:3e3})})},function(e){r.$emit("log.error",{cause:e,msg:"Opdatering af media fejlede."})}).then(function(){t.loading=!1})},t.delete=function(){t.loading=!0,s.deleteMedia(t.media.id).then(function(){r.$emit("log.info",{msg:"Media slettet.",timeout:3e3}),n(function(){i.path("/media-overview")},500)},function(e){r.$emit("log.error",{cause:e,msg:"Sletning af media fejlede."})}).then(function(){t.loading=!1})},t.getContentType=function(e){return e?e.content_type.split("/")[0]:""},t.videoPath=function(e,t){var i="";return e.provider_metadata.forEach(function(e){e.format===t&&(i=e.reference),"thumbnail_landscape"===t&&e.thumbnails.forEach(function(e){"mp4_landscape"===e.label&&(i=e.reference)})}),i}}]),angular.module("ikApp").controller("SlideOverviewController",["$scope","$location",function(e,i){"use strict";e.$on("slideOverview.clickSlide",function(e,t){i.path("/slide/"+t.id)})}]),angular.module("ikApp").controller("SlideController",["$scope","$controller","$location","$routeParams","$timeout","slideFactory","templateFactory","channelFactory","busService","userService",function(n,e,t,i,o,s,r,a,h,l){"use strict";function d(e){n.step=e,n.templatePath="bundles/os2displayadmin/apps/ikApp/pages/slide/slide-step"+n.step+".html?"+window.config.version}function c(e){return!!n.slide&&""!==n.slide[e]}e("BaseEntityController",{$scope:n,entityType:"slide"}),n.steps=6,n.slide={},n.templates=[],r.getEnabledSlideTemplates().then(function(e){for(var t in e)e.hasOwnProperty(t)&&n.templates.push(e[t])},function(e){h.$emit("log.error",{cause:e,msg:"Kunne ikke hente slide templates."})}),n.editor={channelOverviewEditor:!1,toggleChannelOverviewEditor:function(){h.$emit("bodyService.toggleClass","is-locked"),n.editor.channelOverviewEditor=!n.editor.channelOverviewEditor}},n.$on("channelOverview.clickChannel",function(e,t){n.toggleChannel(t)}),i.id?null===i.id||void 0===i.id||""===i.id?t.path("/slide"):(s.clearCurrentSlide(),s.getEditSlide(i.id).then(function(e){n.slide=e,n.slide.status="edit-slide",n.slide==={}&&t.path("/slide"),d(3)},function(e){h.$emit("log.error",{cause:e,msg:"Kunne ikke hente slide med id: "+i.id}),t.path("/slide-overview")})):(n.slide=s.emptySlide(),n.slide.channels=[],d(1)),n.submitStep=function(){n.step===n.steps?(n.disableSubmitButton=!0,""===n.slide.duration&&(n.slide.duration=15),s.saveSlide().then(function(){h.$emit("log.info",{msg:"Slide er gemt",timeout:3e3}),o(function(){t.path("/slide-overview")},1e3)},function(e){h.$emit("log.error",{cause:e,msg:"Kunne ikke gemme slide"}),n.disableSubmitButton=!1})):d(n.step+1)},n.validation={titleSet:function(){return c("title")},templateSet:function(){return c("template")}},n.goToStep=function(e){var t=1;n.validation.titleSet()&&(t++,n.validation.templateSet()&&(t+=4)),e<=t&&d(e)},n.selectTemplate=function(t){n.slide.template=t;var i=null;n.templates.forEach(function(e){e.id===t&&(i=e)}),null!==i&&(n.slide.slide_type=i.slide_type,n.slide.options||(n.slide.options={}),n.slide.orientation=i.orientation,angular.forEach(i.empty_options,function(e,t){void 0===n.slide.options[t]&&(n.slide.options[t]=angular.copy(e))}),""===n.slide.options.headline&&(n.slide.options.headline=n.slide.title),n.slide.media_type=i.media_type)},n.channelSelected=function(t){var i=!1;return n.slide.channels.forEach(function(e){t.id===e.id&&(i=!0)}),i},n.hasChannel=function(t){var i=!1;return n.slide.channels.forEach(function(e){t.id===e.id&&(i=!0)}),i},n.toggleChannel=function(i){var o=null;n.slide.channels.forEach(function(e,t){i.id===e.id&&(o=t)}),null!==o?n.slide.channels.splice(o,1):n.slide.channels.push(i)}}]),angular.module("ikApp").controller("SlideEditController",["$scope","slideFactory","busService","templateFactory","$compile","$templateRequest",function(o,e,n,t,s,i){"use strict";e.getEditSlide(null).then(function(e){o.slide=e,t.getSlideTemplate(e.template).then(function(e){o.template=e},function(e){n.$emit("log.error",{cause:e,msg:"Kunne ikke loade værktøjer til slidet."})})},function(e){n.$emit("log.error",{cause:e,msg:"Kunne ikke hente slide."})}),n.$emit("bodyService.removeClass","is-locked"),o.editor={editorOpen:!1,hideEditors:function(){n.$emit("bodyService.removeClass","is-locked"),o.editor.editorOpen=!1,o.selectedTool=null;var e=document.getElementById("slide-edit-tool");angular.element(e).html(s("")(o))}},o.openTool=function(e){n.$emit("bodyService.toggleClass","is-locked"),o.editor.editorOpen=!0,e.id||(e.id="base-editor"),o.selectedTool=e;var t=document.getElementById("slide-edit-tool"),i="
<"+e.id+' slide="slide" close="editor.hideEditors()" '+(e.template?'template="'+e.template+'"':"")+' tool="selectedTool">
";angular.element(t).html(s(i)(o))}}]),function(){"use strict";angular.module("itkDateComponent",[]).directive("dateComponent",["$interval",function(i){return{restrict:"E",replace:!0,templateUrl:"bundles/os2displayadmin/apps/ikApp/shared/components/date/date.html?"+window.config.version,scope:{theme:"@"},link:function(e){e.thisDate=new Date;var t=i(function(){e.thisDate=new Date},6e4);e.$on("$destroy",function(){angular.isDefined(t)&&(i.cancel(t),t=void 0)})}}}])}.call(this),function(){"use strict";angular.module("itkDigitalClockComponent",[]).directive("digitalClockComponent",["$interval",function(i){return{restrict:"E",replace:!0,templateUrl:"bundles/os2displayadmin/apps/ikApp/shared/components/digital-clock/digital-clock.html?"+window.config.version,scope:{},link:function(e){e.thisDate=new Date;var t=i(function(){e.thisDate=Date.now()},1e3);e.$on("$destroy",function(){angular.isDefined(t)&&(i.cancel(t),t=void 0)})}}}])}.call(this),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.vis=t():e.vis=t()}(this,function(){return n={},i.m=o=[function(e,t,i){var o=i(1);o.extend(t,i(7)),o.extend(t,i(24)),o.extend(t,i(60))},function(e,h,t){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=t(2),i=t(6);h.isNumber=function(e){return e instanceof Number||"number"==typeof e},h.recursiveDOMDelete=function(e){if(e)for(;!0===e.hasChildNodes();)h.recursiveDOMDelete(e.firstChild),e.removeChild(e.firstChild)},h.giveRange=function(e,t,i,o){if(t==e)return.5;var n=1/(t-e);return Math.max(0,(o-e)*n)},h.isString=function(e){return e instanceof String||"string"==typeof e},h.isDate=function(e){if(e instanceof Date)return!0;if(h.isString(e)){if(s.exec(e))return!0;if(!isNaN(Date.parse(e)))return!0}return!1},h.randomUUID=function(){return i.v4()},h.assignAllKeys=function(e,t){for(var i in e)e.hasOwnProperty(i)&&"object"!==n(e[i])&&(e[i]=t)},h.fillIfDefined=function(e,t){var i=!(arguments.length<=2||void 0===arguments[2])&&arguments[2];for(var o in e)void 0!==t[o]&&("object"!==n(t[o])?void 0!==t[o]&&null!==t[o]||void 0===e[o]||!0!==i?e[o]=t[o]:delete e[o]:"object"===n(e[o])&&h.fillIfDefined(e[o],t[o],i))},h.protoExtend=function(e,t){for(var i=1;i=t&&b(n,i,!0)>=t-1)break;t--}s++}return null}(e)}function t(e,t){var i=e.toLowerCase();tt[i]=tt[i+"s"]=tt[t]=e}function P(e){return"string"==typeof e?tt[e]||tt[e.toLowerCase()]:void 0}function I(e){var t,i,o={};for(i in e)p(e,i)&&(t=P(i))&&(o[t]=e[i]);return o}function i(t,i){return function(e){return null!=e?(R(this,t,e),u.updateOffset(this,i),this):A(this,t)}}function A(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function R(e,t,i){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](i)}function L(e,t){var i;if("object"==typeof e)for(i in e)this.set(i,e[i]);else if(x(this[e=P(e)]))return this[e](t);return this}function N(e,t,i){var o=""+Math.abs(e),n=t-o.length,s=0<=e;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function z(e,t,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),e&&(st[e]=n),t&&(st[t[0]]=function(){return N(n.apply(this,arguments),t[1],t[2])}),i&&(st[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function F(e,t){return e.isValid()?(t=B(t,e.localeData()),nt[t]=nt[t]||function(o){var e,n,t,s=o.match(it);for(e=0,n=s.length;eY(i[St],i[Ot])?Ct:i[Mt]<0||24Q(e)?(s=e+1,l-Q(e)):(s=e,l),{year:s,dayOfYear:r}}function oe(e,t,i){var o,n,s=te(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return r<1?(n=e.year()-1,o=r+ne(n,t,i)):r>ne(e.year(),t,i)?(o=r-ne(e.year(),t,i),n=e.year()+1):(n=e.year(),o=r),{week:o,year:n}}function ne(e,t,i){var o=te(e,t,i),n=te(e+1,t,i);return(Q(e)-o+n)/7}function se(e,t,i){return null!=e?e:null!=t?t:i}function re(e){var t,i,o,n,s=[];if(!e._d){for(o=function(e){var t=new Date(u.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[Ct]&&null==e._a[Ot]&&function(e){var t,i,o,n,s,r,a,h;null!=(t=e._w).GG||null!=t.W||null!=t.E?(s=1,r=4,i=se(t.GG,e._a[St],oe(de(),1,4).year),o=se(t.W,1),((n=se(t.E,1))<1||7ne(i,s,r)?f(e)._overflowWeeks=!0:null!=h?f(e)._overflowWeekday=!0:(a=ie(i,o,n,s,r),e._a[St]=a.year,e._dayOfYear=a.dayOfYear)}(e),e._dayOfYear&&(n=se(e._a[St],o[St]),e._dayOfYear>Q(n)&&(f(e)._overflowDayOfYear=!0),i=J(n,0,e._dayOfYear),e._a[Ot]=i.getUTCMonth(),e._a[Ct]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=o[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Mt]&&0===e._a[Dt]&&0===e._a[Et]&&0===e._a[Tt]&&(e._nextDay=!0,e._a[Mt]=0),e._d=(e._useUTC?J:function(e,t,i,o,n,s,r){var a=new Date(e,t,i,o,n,s,r);return e<100&&0<=e&&isFinite(a.getFullYear())&&a.setFullYear(e),a}).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Mt]=24)}}function ae(e){if(e._f!==u.ISO_8601){e._a=[],f(e).empty=!0;var t,i,o,n,s,r,a,h,l=""+e._i,d=l.length,c=0;for(o=B(e._f,e._locale).match(it)||[],t=0;t>>0,o=0;oi.valueOf():i.valueOf()this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ci.isDSTShifted=function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(c(e,this),(e=he(e))._a){var t=e._isUTC?d(e._a):de(e._a);this._isDSTShifted=this.isValid()&&0>>((3&t)<<3)&255;return n}}for(var s=[],a={},h=0;h<256;h++)s[h]=(h+256).toString(16).substr(1),a[s[h]]=h;var l=r(),f=[1|l[0],l[1],l[2],l[3],l[4],l[5]],m=16383&(l[6]<<8|l[7]),g=0,v=0,d=t;d.v1=function(e,t,i){var o=t&&i||0,n=t||[],s=void 0!==(e=e||{}).clockseq?e.clockseq:m,r=void 0!==e.msecs?e.msecs:(new Date).getTime(),a=void 0!==e.nsecs?e.nsecs:v+1,h=r-g+(a-v)/1e4;if(h<0&&void 0===e.clockseq&&(s=s+1&16383),(h<0||g>>24&255,n[o++]=l>>>16&255,n[o++]=l>>>8&255,n[o++]=255&l;var d=r/4294967296*1e4&268435455;n[o++]=d>>>8&255,n[o++]=255&d,n[o++]=d>>>24&15|16,n[o++]=d>>>16&255,n[o++]=s>>>8|128,n[o++]=255&s;for(var c=e.node||f,u=0;u<6;u++)n[o+u]=c[u];return t||p(n)},d.v4=t,d.parse=function(e,t,i){var o=t&&i||0,n=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){n<16&&(t[o+n++]=a[e])});n<16;)t[o+n++]=0;return t},d.unparse=p,c.exports=d}).call(e,function(){return this}())},function(e,t,i){t.util=i(1),t.DOMutil=i(8),t.DataSet=i(9),t.DataView=i(11),t.Queue=i(10),t.Graph3d=i(12),t.graph3d={Camera:i(16),Filter:i(17),Point2d:i(15),Point3d:i(14),Slider:i(18),StepNumber:i(19)},t.moment=i(2),t.Hammer=i(20),t.keycharm=i(23)},function(e,l){l.prepareElements=function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])},l.cleanupElements=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var i=0;ithis.max&&this.flush(),clearTimeout(this._timeout),0e[o][t]&&(i.min=e[o][t]),i.max"+this.xLabel+":"+e.point.x+""+this.yLabel+":"+e.point.y+""+this.zLabel+":"+e.point.z+"",t.style.left="0",t.style.top="0",this.frame.appendChild(t),this.frame.appendChild(i),this.frame.appendChild(o);var n=t.offsetWidth,s=t.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,l=e.screen.x-n/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-n),i.style.left=e.screen.x+"px",i.style.top=e.screen.y-r+"px",t.style.left=l+"px",t.style.top=e.screen.y-r-s+"px",o.style.left=e.screen.x-a/2+"px",o.style.top=e.screen.y-h/2+"px"},w.prototype._hideTooltip=function(){if(this.tooltip)for(var e in this.tooltip.dataPoint=null,this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(e)){var t=this.tooltip.dom[e];t&&t.parentNode&&t.parentNode.removeChild(t)}},e.exports=w},function(e,t){function i(e){return e?function(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}(e):void 0}(e.exports=i).prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){function i(){o.off(e,i),t.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var o,n=0;n.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===e&&void 0===t||this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var e={};return e.horizontal=this.armRotation.horizontal,e.vertical=this.armRotation.vertical,e},o.prototype.setArmLength=function(e){void 0!==e&&(this.armLength=e,this.armLength<.71&&(this.armLength=.71),5=this.values.length)throw"Error: index out of range";return this.values[e]},o.prototype._getDataPoints=function(e){if(void 0===e&&(e=this.index),void 0===e)return[];var t;if(this.dataPoints[e])t=this.dataPoints[e];else{var i={};i.column=this.column,i.value=this.values[e];var o=new n(this.data,{filter:function(e){return e[i.column]==i.value}}).get();t=this.graph._getDataPoints(o),this.dataPoints[e]=t}return t},o.prototype.setOnLoadCallback=function(e){this.onLoadCallback=e},o.prototype.selectValue=function(e){if(e>=this.values.length)throw"Error: index out of range";this.index=e,this.value=this.values[e]},o.prototype.loadInBackground=function(e){void 0===e&&(e=0);var t=this.graph.frame;if(ethis.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(e){var t=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10;return 3+e/(this.values.length-1)*t},o.prototype._onMouseMove=function(e){var t=e.clientX-this.startClientX,i=this.startSlideX+t,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(e){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},e.exports=o},function(e,t){function i(e,t,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(e,t,i,o)}i.prototype.setRange=function(e,t,i,o){this._start=e||0,this._end=t||0,this.setStep(i,o)},i.prototype.setStep=function(e,t){void 0===e||e<=0||(void 0!==t&&(this.prettyStep=t),!0===this.prettyStep?this._step=i.calculatePrettyStep(e):this._step=e)},i.calculatePrettyStep=function(e){function t(e){return Math.log(e)/Math.LN10}var i=Math.pow(10,Math.round(t(e))),o=2*Math.pow(10,Math.round(t(e/2))),n=5*Math.pow(10,Math.round(t(e/5))),s=i;return Math.abs(o-e)<=Math.abs(s-e)&&(s=o),Math.abs(n-e)<=Math.abs(s-e)&&(s=n),s<=0&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},e.exports=i},function(e,t,i){if("undefined"!=typeof window){var o=i(21),n=window.Hammer||i(22);e.exports=o(n,{preventDefault:"mouse"})}else e.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(e,t,i){var o,n,s;n=[],void 0===(s="function"==typeof(o=function(){var d=null;return function o(n,e){function t(e){return e.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var t=!1;e.stopPropagation=function(){t=!0};var i=e.srcEvent.stopPropagation.bind(e.srcEvent);"function"==typeof i&&(e.srcEvent.stopPropagation=function(){i(),e.stopPropagation()});for(var o=e.firstTarget=d;o&&!t;){var n=o.hammer;if(n)for(var s,r=0;r\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",i=s.console&&(s.console.warn||s.console.log);return i&&i.call(s.console,n,t),o.apply(this,arguments)}}function i(e,t,i){var o,n=t.prototype;(o=e.prototype=Object.create(n)).constructor=e,o._super=n,i&&K(o,i)}function h(e,t){return function(){return e.apply(t,arguments)}}function l(e,t){return typeof e==Q?e.apply(t&&t[0]||c,t):e}function d(e,t){return e===c?t:e}function u(t,e,i){r(g(e),function(e){t.addEventListener(e,i,!1)})}function p(t,e,i){r(g(e),function(e){t.removeEventListener(e,i,!1)})}function f(e,t){for(;e;){if(e==t)return!0;e=e.parentNode}return!1}function m(e,t){return-1t[i]}):o.sort()),o}function w(e,t){for(var i,o,n=t[0].toUpperCase()+t.slice(1),s=0;ste(l.y)?l.x:l.y,t.scale=r?function(e,t){return D(t[0],t[1],ke)/D(e[0],e[1],ke)}(r.pointers,o):1,t.rotation=r?function(e,t){return E(t[1],t[0],ke)+E(e[1],e[0],ke)}(r.pointers,o):0,t.maxPointers=i.prevInput?t.pointers.length>i.prevInput.maxPointers?t.pointers.length:i.prevInput.maxPointers:t.pointers.length,function(e,t){var i,o,n,s,r=e.lastInterval||t,a=t.timeStamp-r.timeStamp;if(t.eventType!=pe&&(dete(d.y)?d.x:d.y,s=M(h,l),e.lastInterval=t}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;t.velocity=i,t.velocityX=o,t.velocityY=n,t.direction=s}(i,t);var d=e.element;f(t.srcEvent.target,d)&&(d=t.srcEvent.target),t.target=d}(e,i),e.emit("hammer.input",i),e.recognize(i),e.session.prevInput=i}function S(e){for(var t=[],i=0;i=te(t)?e<0?me:ge:t<0?ve:ye}function D(e,t,i){i||(i=xe);var o=t[i[0]]-e[i[0]],n=t[i[1]]-e[i[1]];return Math.sqrt(o*o+n*n)}function E(e,t,i){i||(i=xe);var o=t[i[0]]-e[i[0]],n=t[i[1]]-e[i[1]];return 180*Math.atan2(n,o)/Math.PI}function T(){this.evEl=Oe,this.evWin=Ce,this.allow=!0,this.pressed=!1,x.apply(this,arguments)}function P(){this.evEl=Ee,this.evWin=Te,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function I(){this.evTarget="touchstart",this.evWin="touchstart touchmove touchend touchcancel",this.started=!1,x.apply(this,arguments)}function A(){this.evTarget=Ae,this.targetIds={},x.apply(this,arguments)}function R(){x.apply(this,arguments);var e=h(this.handler,this);this.touch=new A(this.manager,e),this.mouse=new T(this.manager,e)}function L(e,t){this.manager=e,this.set(t)}function N(e){this.options=K({},this.defaults,e||{}),this.id=se++,this.manager=null,this.options.enable=d(this.options.enable,!0),this.state=je,this.simultaneous={},this.requireFail=[]}function z(e){return 16&e?"cancel":8&e?"end":4&e?"move":2&e?"start":""}function F(e){return e==ye?"down":e==ve?"up":e==me?"left":e==ge?"right":""}function B(e,t){var i=t.manager;return i?i.get(e):e}function j(){N.apply(this,arguments)}function H(){j.apply(this,arguments),this.pX=null,this.pY=null}function W(){j.apply(this,arguments)}function $(){N.apply(this,arguments),this._timer=null,this._input=null}function U(){j.apply(this,arguments)}function Y(){j.apply(this,arguments)}function G(){N.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function V(e,t){return(t=t||{}).recognizers=d(t.recognizers,V.defaults.preset),new q(e,t)}function q(e,t){this.options=K({},V.defaults,t||{}),this.options.inputTarget=this.options.inputTarget||e,this.handlers={},this.session={},this.recognizers=[],this.element=e,this.input=function(e){var t=e.options.inputClass;return new(t||(ae?P:he?A:re?R:T))(e,k)}(this),this.touchAction=new L(this,this.options.touchAction),X(this,!0),r(this.options.recognizers,function(e){var t=this.add(new e[0](e[1]));e[2]&&t.recognizeWith(e[2]),e[3]&&t.requireFailure(e[3])},this)}function X(e,i){var o=e.element;o.style&&r(e.options.cssProps,function(e,t){o.style[w(o.style,t)]=i?e:""})}var K,Z=["","webkit","Moz","MS","ms","o"],J=n.createElement("div"),Q="function",ee=Math.round,te=Math.abs,ie=Date.now;K="function"!=typeof Object.assign?function(e){if(e===c||null===e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),i=1;it.threshold&&n&t.direction},attrTest:function(e){return j.prototype.attrTest.call(this,e)&&(2&this.state||!(2&this.state)&&this.directionTest(e))},emit:function(e){this.pX=e.deltaX,this.pY=e.deltaY;var t=F(e.direction);t&&(e.additionalEvent=this.options.event+t),this._super.emit.call(this,e)}}),i(W,j,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ze]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.scale-1)>this.options.threshold||2&this.state)},emit:function(e){if(1!==e.scale){var t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}this._super.emit.call(this,e)}}),i($,N,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return["auto"]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,o=e.distancet.time;if(this._input=e,!o||!i||e.eventType&(ue|pe)&&!n)this.reset();else if(e.eventType&ce)this.reset(),this._timer=a(function(){this.state=8,this.tryEmit()},t.time,this);else if(e.eventType&ue)return 8;return 32},reset:function(){clearTimeout(this._timer)},emit:function(e){8===this.state&&(e&&e.eventType&ue?this.manager.emit(this.options.event+"up",e):(this._input.timeStamp=ie(),this.manager.emit(this.options.event,this._input)))}}),i(U,j,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ze]},attrTest:function(e){return this._super.attrTest.call(this,e)&&(Math.abs(e.rotation)>this.options.threshold||2&this.state)}}),i(Y,j,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:be|we,pointers:1},getTouchAction:function(){return H.prototype.getTouchAction.call(this)},attrTest:function(e){var t,i=this.options.direction;return i&(be|we)?t=e.overallVelocity:i&be?t=e.overallVelocityX:i&we&&(t=e.overallVelocityY),this._super.attrTest.call(this,e)&&i&e.offsetDirection&&e.distance>this.options.threshold&&e.maxPointers==this.options.pointers&&te(t)>this.options.velocity&&e.eventType&ue},emit:function(e){var t=F(e.offsetDirection);t&&this.manager.emit(this.options.event+t,e),this.manager.emit(this.options.event,e)}}),i(G,N,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Ne]},process:function(e){var t=this.options,i=e.pointers.length===t.pointers,o=e.distance"+e+":":e+":",o}},{key:"_makeDropdown",value:function(e,t,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==t&&-1!==e.indexOf(t)&&(n=e.indexOf(t));for(var s=0;svar options = "+JSON.stringify(e,null,2)+""}},{key:"getOptions",value:function(){for(var e={},t=0;tn.distance?console.log('%cUnknown option detected: "'+e+'" in '+p.printLocation(o.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+p.printLocation(n.path,n.closestMatch,""),l):o.distance<=8?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+o.closestMatch+'"?'+p.printLocation(o.path,e),l):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+p.print(Object.keys(t))+p.printLocation(i,e),l),h=!0}},{key:"findInOptions",value:function(e,t,i){var o=!(arguments.length<=3||void 0===arguments[3])&&arguments[3],n=1e9,s="",r=[],a=e.toLowerCase(),h=void 0;for(var l in t){var d=void 0;if(void 0!==t[l].__type__&&!0===o){var c=p.findInOptions(e,t[l],u.copyAndExtendArray(i,l));n>c.distance&&(s=c.closestMatch,r=c.path,n=c.distance,h=c.indexMatch)}else-1!==l.toLowerCase().indexOf(a)&&(h=l),(d=p.levenshteinDistance(e,l))this.start&&nthis.end?(o=this.start,n=this.end):(o+=(i=n-o-h)/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(e,t){return o.conversion(this.start,this.end,e,t)},o.conversion=function(e,t,i,o){return void 0===o&&(o=0),0!=i&&t-e!=0?{offset:e,scale:i/(t-e-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(e){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(e)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(e){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var t=this.options.direction;u(t);var i="horizontal"==t?e.deltaX:e.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start;o-=y.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);var n="horizontal"==t?this.body.domProps.center.width:this.body.domProps.center.height;if(this.options.rtl)var s=i/n*o;else s=-i/n*o;var r=this.props.touch.start+s,a=this.props.touch.end+s,h=y.snapAwayFromHidden(this.body.hiddenDates,r,this.previousDelta-i,!0),l=y.snapAwayFromHidden(this.body.hiddenDates,a,this.previousDelta-i,!0);if(h!=r||l!=a)return this.deltaDifference+=i,this.props.touch.start=h,this.props.touch.end=l,void this._onDrag(e);this.previousDelta=i,this._applyRange(r,a);var d=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:d,end:c,byUser:!0})}},o.prototype._onDragEnd=function(e){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(e){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(e)&&(!this.options.zoomKey||e[this.options.zoomKey])){var t=0;if(e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),t){var i;i=t<0?1-t/5:1/(1+t/5);var o=this.getPointer({x:e.clientX,y:e.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,t)}e.preventDefault()}},o.prototype._onTouch=function(e){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(e){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(e.center,this.body.dom.center));var t=1/(e.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=y.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=y.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*t,a=i+s+(this.props.touch.end-(i+s))*t;this.startToFront=1-t<=0,this.endToFront=t-1<=0;var h=y.snapAwayFromHidden(this.body.hiddenDates,r,1-t,!0),l=y.snapAwayFromHidden(this.body.hiddenDates,a,t-1,!0);h==r&&l==a||(this.props.touch.start=h,this.props.touch.end=l,this.scaleOffset=1-e.scale,r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(e){var t=e.center?e.center.x:e.clientX;if(this.options.rtl)var i=t-v.getAbsoluteLeft(this.body.dom.centerContainer);else i=v.getAbsoluteRight(this.body.dom.centerContainer)-t;var o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(e){var t,i=this.options.direction;if(u(i),"horizontal"==i)return this.body.util.toTime(e.x).valueOf();var o=this.body.domProps.center.height;return t=this.conversion(o),e.y/t.scale+t.offset},o.prototype.getPointer=function(e,t){return this.options.rtl?{x:v.getAbsoluteRight(t)-e.x,y:e.y-v.getAbsoluteTop(t)}:{x:e.x-v.getAbsoluteLeft(t),y:e.y-v.getAbsoluteTop(t)}},o.prototype.zoom=function(e,t,i){null==t&&(t=(this.start+this.end)/2);var o=y.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=y.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,t),s=o-n,r=t-n+(this.start-(t-n))*e,a=t+s+(this.end-(t+s))*e;this.startToFront=!(0=t[o].start&&t[n].end<=t[o].end?t[n].remove=!0:t[n].start>=t[o].start&&t[n].start<=t[o].end?(t[o].end=t[n].end,t[n].remove=!0):t[n].end>=t[o].start&&t[n].end<=t[o].end&&(t[o].start=t[n].start,t[n].remove=!0));for(o=0;o=i.start&&a=t.start&&hthis.props.centerContainer.height;this.hammer.get("pan").set({direction:p?f.DIRECTION_ALL:f.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});if(t){if(this.redrawCount<5)return void this.body.emitter.emit("_change");console.log("WARNING: infinite loop in redraw?")}else this.redrawCount=0;this.initialDrawDone=!0,this.body.emitter.emit("changed")}},o.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},o.prototype.setCurrentTime=function(e){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");this.currentTime.setCurrentTime(e)},o.prototype.getCurrentTime=function(){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");return this.currentTime.getCurrentTime()},o.prototype._toTime=function(e){return g.toTime(this,e,this.props.center.width)},o.prototype._toGlobalTime=function(e){return g.toTime(this,e,this.props.root.width)},o.prototype._toScreen=function(e){return g.toScreen(this,e,this.props.center.width)},o.prototype._toGlobalScreen=function(e){return g.toScreen(this,e,this.props.root.width)},o.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},o.prototype._startAutoResize=function(){var e=this;this._stopAutoResize(),this._onResize=function(){return 1!=e.options.autoResize?void e._stopAutoResize():void(e.dom.root&&(e.dom.root.offsetWidth==e.props.lastWidth&&e.dom.root.offsetHeight==e.props.lastHeight||(e.props.lastWidth=e.dom.root.offsetWidth,e.props.lastHeight=e.dom.root.offsetHeight,e.body.emitter.emit("_change"))))},m.addEventListener(window,"resize",this._onResize),e.dom.root&&(e.props.lastWidth=e.dom.root.offsetWidth,e.props.lastHeight=e.dom.root.offsetHeight),this.watchTimer=setInterval(this._onResize,1e3)},o.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),this._onResize&&(m.removeEventListener(window,"resize",this._onResize),this._onResize=null)},o.prototype._onTouch=function(e){this.touch.allowDragging=!0,this.touch.initialScrollTop=this.props.scrollTop},o.prototype._onPinch=function(e){this.touch.allowDragging=!1},o.prototype._onDrag=function(e){if(this.touch.allowDragging){var t=e.deltaY,i=this._getScrollTop();this._setScrollTop(this.touch.initialScrollTop+t)!=i&&this.emit("verticalDrag")}},o.prototype._setScrollTop=function(e){return this.props.scrollTop=e,this._updateScrollTop(),this.props.scrollTop},o.prototype._updateScrollTop=function(){var e=Math.min(this.props.centerContainer.height-this.props.center.height,0);return e!=this.props.scrollTopMin&&("top"!=this.options.orientation.item&&(this.props.scrollTop+=e-this.props.scrollTopMin),this.props.scrollTopMin=e),0t&&o.push(a.id):a.lefti&&o.push(a.id)}return o},c.prototype._deselect=function(e){for(var t=this.selection,i=0,o=t.length;i=s.min&&l<=s.max)||this.options.multiselectPerGroup&&n!=this.itemsData.get(a.id).group||a instanceof m||i.push(a.id)}}else{var d=i.indexOf(t.id);-1==d?i.push(t.id):i.splice(d,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:e})}}},c._getItemRange=function(e){var t=null,i=null;return e.forEach(function(e){(null==i||e.startt)&&(t=e.end):(null==t||e.start>t)&&(t=e.start)}),{min:i,max:t}},c.prototype.itemFromTarget=function(e){for(var t=e.target;t;){if(t.hasOwnProperty("timeline-item"))return t["timeline-item"];t=t.parentNode}return null},c.prototype.groupFromTarget=function(e){for(var t=e.center?e.center.y:e.clientY,i=0;ie.axis){var s=o-e.axis;n-=s,p.forEach(i,function(e){e.top-=s})}t=n+e.item.vertical/2}else t=0;return Math.max(t,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var e=this.dom.label;e.parentNode&&e.parentNode.removeChild(e);var t=this.dom.foreground;t.parentNode&&t.parentNode.removeChild(t);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(e){if((this.items[e.id]=e).setParent(this),void 0!==e.data.subgroup&&(void 0===this.subgroups[e.data.subgroup]&&(this.subgroups[e.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[e.data.subgroup].items.push(e)),this.orderSubgroups(),-1==this.visibleItems.indexOf(e)){var t=this.itemSet.body.range;this._checkIfVisible(e,this.visibleItems,t)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var e=[];if("string"==typeof this.subgroupOrderer){for(var t in this.subgroups)e.push({subgroup:t,sortField:this.subgroups[t].items[0].data[this.subgroupOrderer]});e.sort(function(e,t){return e.sortField-t.sortField})}else if("function"==typeof this.subgroupOrderer){for(var t in this.subgroups)e.push(this.subgroups[t].items[0].data);e.sort(this.subgroupOrderer)}if(0d}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sd})}for(s=0;st.right&&e.top-i.vertical+.001t.top:e.left-i.horizontal+.001t.left&&e.top-i.vertical+.001t.top}},function(e,t,i){function o(e,t,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,e){if(null==e.start)throw new Error('Property "start" missing in item '+e.id);if(null==e.end)throw new Error('Property "end" missing in item '+e.id)}n.call(this,e,t,i)}var n=(i(20),i(39));(o.prototype=new n(null,null,null)).baseClassName="vis-item vis-range",o.prototype.isVisible=function(e){return this.data.starte.start},o.prototype.redraw=function(){var e=this.dom;if(e||(this.dom={},(e=this.dom).box=document.createElement("div"),e.frame=document.createElement("div"),e.frame.className="vis-item-overflow",e.box.appendChild(e.frame),e.content=document.createElement("div"),e.content.className="vis-item-content",e.frame.appendChild(e.content),(e.box["timeline-item"]=this).dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!e.box.parentNode){var t=this.parent.dom.foreground;if(!t)throw new Error("Cannot redraw item: parent has no foreground container element");t.appendChild(e.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||!0===this.editable)&&!1!==this.editable,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");e.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(e.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(e.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var e=this.dom.box;e.parentNode&&e.parentNode.removeChild(e),this.displayed=!1}},o.prototype.repositionX=function(e){var t,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);void 0!==e&&!0!==e||(n<-o&&(n=-o),2*oe.start-t&&this.data.starte.start-t&&this.data.starte.start},o.prototype.redraw=function(){var e=this.dom;if(e||(this.dom={},(e=this.dom).box=document.createElement("div"),e.frame=document.createElement("div"),e.frame.className="vis-item-overflow",e.box.appendChild(e.frame),e.content=document.createElement("div"),e.content.className="vis-item-content",e.frame.appendChild(e.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!e.box.parentNode){var t=this.parent.dom.background;if(!t)throw new Error("Cannot redraw item: parent has no background container element");t.appendChild(e.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");e.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(e.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=s.prototype.show,o.prototype.hide=s.prototype.hide,o.prototype.repositionX=s.prototype.repositionX,o.prototype.repositionY=function(e){var t,i="top"===this.options.orientation.item;if(this.dom.content.style.top=i?"":"0",this.dom.content.style.bottom=i?"0":"",void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,s=n[o].index;if(1==i){t=this.parent.subgroups[o].height+e.item.vertical,t+=0==s?e.axis-.5*e.item.vertical:0;var r=this.parent.top;for(var a in n)n.hasOwnProperty(a)&&1==n[a].visible&&n[a].indexs&&(r+=l)}t=this.parent.subgroups[o].height+e.item.vertical,this.dom.box.style.top=this.parent.height-h+r+"px",this.dom.box.style.bottom=""}}else this.parent instanceof d?(t=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=i?"0":"",this.dom.box.style.bottom=i?"":"0"):(t=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=t+"px"},e.exports=o},function(e,t,i){function o(e,t){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,maxMinorChars:7,format:k.FORMAT,moment:r,timeAxis:null},this.options=x.extend({},this.defaultOptions),this.body=e,this._create(),this.setOptions(t)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},x=i(1),s=i(31),k=i(35),S=i(32),r=i(2);(o.prototype=new s).setOptions=function(e){e&&(x.selectiveExtend(["showMinorLabels","showMajorLabels","maxMinorChars","hiddenDates","timeAxis","moment","rtl"],this.options,e),x.selectiveDeepExtend(["format"],this.options,e),"orientation"in e&&("string"==typeof e.orientation?this.options.orientation.axis=e.orientation:"object"===n(e.orientation)&&"axis"in e.orientation&&(this.options.orientation.axis=e.orientation.axis)),"locale"in e&&("function"==typeof r.locale?r.locale(e.locale):r.lang(e.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var e=this.props,t=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=t.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;e.minorLabelHeight=s?e.minorCharHeight:0,e.majorLabelHeight=r?e.majorCharHeight:0,e.height=e.minorLabelHeight+e.majorLabelHeight,e.width=t.offsetWidth,e.minorLineHeight=this.body.domProps.root.height-e.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),e.minorLineWidth=1,e.majorLineHeight=e.minorLineHeight+e.majorLabelHeight,e.majorLineWidth=1;var a=t.nextSibling,h=i.nextSibling;return t.parentNode&&t.parentNode.removeChild(t),i.parentNode&&i.parentNode.removeChild(i),t.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(t,a):o.appendChild(t),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var e=this.options.orientation.axis,t=x.convert(this.body.range.start,"Number"),i=x.convert(this.body.range.end,"Number"),o=this.body.util.toTime((this.props.minorCharWidth||10)*this.options.maxMinorChars).valueOf(),n=o-S.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);n-=this.body.util.toTime(0).valueOf();var s=new k(new Date(t),new Date(i),n,this.body.hiddenDates);s.setMoment(this.options.moment),this.options.format&&s.setFormat(this.options.format),this.options.timeAxis&&s.setScale(this.options.timeAxis),this.step=s;var r=this.dom;r.redundant.lines=r.lines,r.redundant.majorTexts=r.majorTexts,r.redundant.minorTexts=r.minorTexts,r.lines=[],r.majorTexts=[],r.minorTexts=[];var a,h,l,d,c,u,p,f=0,m=void 0,g=0;for(s.start(),a=s.getCurrent(),l=this.body.util.toScreen(a);s.hasNext()&&g<1e3;){g++,d=s.isMajor(),p=s.getClassName(),u=s.getLabelMinor(),a,h=l,s.next(),a=s.getCurrent(),s.isMajor();var v=.4*f<=(f=(l=this.body.util.toScreen(a))-h);if(this.options.showMinorLabels&&v){var y=this._repaintMinorText(h,u,e,p);y.style.width=f+"px"}d&&this.options.showMajorLabels?(0e[a].x){r=t[h],s=0==h?r:t[h-1],i=h;break}}void 0===r&&(s=t[t.length-1],r=t[t.length-1]),o=r.x-s.x,n=r.y-s.y,e[a].y=0==o?e[a].orginalY+r.y:e[a].orginalY+n/o*(e[a].x-s.x)+s.y}},o.prototype._getRelevantData=function(e,t,i,o){var n,s,r,a;if(0this.width-r&&!0===this.options.visible?(this.width=this.maxLabelSize+r,this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+r),this.options.width=this.width+"px",a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),this.redraw(),!0):(a.cleanupElements(this.DOMelements.lines),a.cleanupElements(this.DOMelements.labels),!1)},o.prototype.convertValue=function(e){return this.scale.convertValue(e)},o.prototype.screenToValue=function(e){return this.scale.screenToValue(e)},o.prototype._redrawLabel=function(e,t,i,o,n){var s=a.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=t,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=e-.5*n+this.options.labelOffsetY+"px",t+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSizel.magnitudefactor*l.minorSteps[l.minorStepIdx]*.5?t+l.magnitudefactor*l.minorSteps[l.minorStepIdx]:t}var l=this;i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=h(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=h(this._end)),this.determineScale()}}i.prototype.setCharHeight=function(e){this.majorCharHeight=e},i.prototype.setHeight=function(e){this.containerHeight=e},i.prototype.determineScale=function(){var e=this._end-this._start;this.scale=this.containerHeight/e;var t=this.majorCharHeight/this.scale,i=0s+1e-5)i(),l=!1;else{if(!this.autoScaleStart&&this._startt.x?1:-1})):this.itemsData=[]},o.prototype.getItems=function(){return this.itemsData},o.prototype.setZeroPosition=function(e){this.zeroPosition=e},o.prototype.setOptions=function(e){if(void 0!==e){s.selectiveDeepExtend(["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"],this.options,e),"function"==typeof e.drawPoints&&(e.drawPoints={onRender:e.drawPoints}),s.mergeOptions(this.options,e,"interpolation"),s.mergeOptions(this.options,e,"drawPoints"),s.mergeOptions(this.options,e,"shaded"),e.interpolation&&"object"==n(e.interpolation)&&e.interpolation.parametrization&&("uniform"==e.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==e.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},o.prototype.update=function(e){this.group=e,this.content=e.content||"graph",this.className=e.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===e.visible||e.visible,this.style=e.style,this.setOptions(e.options)},o.prototype.getLegend=function(e,t,i,o,n){null!=i&&null!=i||(i={svg:document.createElementNS("http://www.w3.org/2000/svg","svg"),svgElements:{},options:this.options,groups:[this]});switch(null!=o&&null!=o||(o=0),null!=n&&null!=n||(n=.5*t),this.options.style){case"line":a.drawIcon(this,o,n,e,t,i);break;case"points":case"point":h.drawIcon(this,o,n,e,t,i);break;case"bar":r.drawIcon(this,o,n,e,t,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},o.prototype.getYRange=function(e){for(var t=e[0].y,i=e[0].y,o=0;oe[o].y?e[o].y:t,i=it[s].screen_y?t[s].screen_y:o,n=ne[r].accumulatedNegative?e[r].accumulatedNegative:o)>e[r].accumulatedPositive?e[r].accumulatedPositive:o,n=(n=n")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var e=Object.keys(this.groups);e.sort(function(e,t){return ee.left&&this.shape.tope.top}},{key:"isBoundingBoxOverlappingWith",value:function(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}}],[{key:"parseOptions",value:function(e,t){var i=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3];if(w.selectiveNotDeepExtend(["color","font","fixed","shadow"],e,t,i),w.mergeOptions(e,t,"shadow",i,o),void 0!==t.color&&null!==t.color){var n=w.parseColor(t.color);w.fillIfDefined(e.color,n)}else!0===i&&null===t.color&&(e.color=w.bridgeObject(o.color));void 0!==t.fixed&&null!==t.fixed&&("boolean"==typeof t.fixed?(e.fixed.x=t.fixed,e.fixed.y=t.fixed):(void 0!==t.fixed.x&&"boolean"==typeof t.fixed.x&&(e.fixed.x=t.fixed.x),void 0!==t.fixed.y&&"boolean"==typeof t.fixed.y&&(e.fixed.y=t.fixed.y))),void 0!==t.font&&null!==t.font?s.default.parseOptions(e.font,t):!0===i&&null===t.font&&(e.font=w.bridgeObject(o.font)),void 0!==t.scaling&&w.mergeOptions(e.scaling,t.scaling,"label",i,o.scaling)}}]),x);function x(e,t,i,o,n){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,x),this.options=w.bridgeObject(n),this.globalOptions=n,this.body=t,this.edges=[],this.id=void 0,this.imagelist=i,this.grouplist=o,this.x=void 0,this.y=void 0,this.baseSize=this.options.size,this.baseFontSize=this.options.font.size,this.predefinedPosition=!1,this.selected=!1,this.hover=!1,this.labelModule=new s.default(this.body,this.options,!1),this.setOptions(e)}function k(e,t){for(var i=0;i=this.nodeOptions.scaling.label.maxVisible&&(s=Number(this.nodeOptions.scaling.label.maxVisible)/this.body.view.scale);var a=this.size.yLine,h=this._getColor(r),l=m(h,2),d=l[0],c=l[1],u=this._setAlignment(e,i,a,n),p=m(u,2);i=p[0],a=p[1],e.font=(t&&this.nodeOptions.labelHighlightBold?"bold ":"")+s+"px "+this.fontOptions.face,e.fillStyle=d,this.isEdgeLabel||"left"!==this.fontOptions.align?e.textAlign="center":(e.textAlign=this.fontOptions.align,i-=.5*this.size.width),0this.imageObj.height?(i=this.imageObj.width/this.imageObj.height,e=2*this.options.size*i||this.imageObj.width,2*this.options.size||this.imageObj.height):(i=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,e=2*this.options.size,2*this.options.size*i):(e=this.imageObj.width,this.imageObj.height),this.width=e,this.height=t,this.radius=.5*this.width)}},{key:"_drawRawCircle",value:function(e,t,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth,h=(o?a:r)/this.body.view.scale;e.lineWidth=Math.min(this.width,h),e.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,e.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,e.circle(t,i,s),this.enableShadow(e),e.fill(),this.disableShadow(e),e.save(),0i.shape.height?(r=i.x+.5*i.shape.width,i.y-h):(r=i.x+h,i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(e,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(e){if(this.connected){var t=this.from.x,i=this.from.y,o=this.to.x,n=this.to.y,s=e.left,r=e.top;return this.edgeType.getDistanceToEdge(t,i,o,n,s,r)<10}return!1}},{key:"_rotateForLabelAlignment",value:function(e){var t=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(t,i);(o<-1&&i<0||0Math.abs(t)||!0===this.options.smooth.forceDirection||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*e,this.to.x+r*e):(o=this.from.y-r*t,s=this.to.y+r*t,i=this.from.x,this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"getViaNode",value:function(){return this._getViaCoordinates()}},{key:"_findBorderPosition",value:function(e,t){return this._findBorderPositionBezier(e,t)}},{key:"_getDistanceToEdge",value:function(e,t,i,o,n,s){var r=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],a=d(r,2),h=a[0],l=a[1];return this._getDistanceToBezierEdge(e,t,i,o,n,s,h,l)}},{key:"getPoint",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=d(t,2),o=i[0],n=i[1],s=e,r=[];return r[0]=Math.pow(1-s,3),r[1]=3*s*Math.pow(1-s,2),r[2]=3*Math.pow(s,2)*(1-s),r[3]=Math.pow(s,3),{x:r[0]*this.fromPoint.x+r[1]*o.x+r[2]*n.x+r[3]*this.toPoint.x,y:r[0]*this.fromPoint.y+r[1]*o.y+r[2]*n.y+r[3]*this.toPoint.y}}}]),a);function a(e,t,i){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,Object.getPrototypeOf(a).call(this,e,t,i))}function h(e,t){for(var i=0;io.shape.height?(t=o.x+.5*o.shape.width,o.y-n):(t=o.x+n,o.y-.5*o.shape.height),[t,i,n]}},{key:"_pointOnCircle",value:function(e,t,i,o){var n=2*o*Math.PI;return{x:e+i*Math.cos(n),y:t-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(e,t,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=0,l=this.options.selfReferenceSize,d=void 0,c=void 0,u=void 0,p=.5*(s+r);s<=r&&h<10&&(p=.5*(s+r),d=this._pointOnCircle(o,n,l,p),c=Math.atan2(e.y-d.y,e.x-d.x),u=e.distanceToBorder(t,c)-Math.sqrt(Math.pow(d.x-e.x,2)+Math.pow(d.y-e.y,2)),!(Math.abs(u)<.05));)0n&&this.labelModule.size.tops?0:a}},{key:"_getDistanceToLine",value:function(e,t,i,o,n,s){var r=i-e,a=o-t,h=((n-e)*r+(s-t)*a)/(r*r+a*a);1=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*s,t=this.from.y-i*s):this.from.x>this.to.x&&(e=this.from.x-i*s,t=this.from.y-i*s):this.from.ythis.to.x&&(e=this.from.x-i*s,t=this.from.y+i*s)),"discrete"===o&&(e=nMath.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*n,t=this.from.y-i*n):this.from.x>this.to.x&&(e=this.from.x-i*n,t=this.from.y-i*n):this.from.ythis.to.x&&(e=this.from.x-i*n,t=this.from.y+i*n)),"discrete"===o&&(t=sMath.abs(this.from.y-this.to.y)&&(e=this.from.x=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*s,t=this.from.y-i*s,e=this.to.xthis.to.x&&(e=this.from.x-i*s,t=this.from.y-i*s,e=this.to.x>e?this.to.x:e):this.from.ythis.to.x&&(e=this.from.x-i*s,t=this.from.y+i*s,e=this.to.x>e?this.to.x:e)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(e=this.from.x+i*n,t=this.from.y-i*n,t=this.to.y>t?this.to.y:t):this.from.x>this.to.x&&(e=this.from.x-i*n,t=this.from.y-i*n,t=this.to.y>t?this.to.y:t):this.from.ythis.to.x&&(e=this.from.x-i*n,t=this.from.y+i*n,t=this.to.yt?0t?0this.thetaInversed?this._calculateForces(n,i,o,t,e):4===e.childrenCount?(this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)):e.children.data.id!=t.id&&this._calculateForces(n,i,o,t,e))}},{key:"_calculateForces",value:function(e,t,i,o,n){0===e&&(t=e=.1),this.overlapAvoidanceFactor<1&&(e=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,e-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(e,3),r=t*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(e,t){for(var i=void 0,o=t.length,n=e[t[0]].x,s=e[t[0]].y,r=e[t[0]].x,a=e[t[0]].y,h=1;ht.x?e.children.NW.range.maxY>t.y?this._placeInRegion(e,t,"NW"):this._placeInRegion(e,t,"SW"):e.children.NW.range.maxY>t.y?this._placeInRegion(e,t,"NE"):this._placeInRegion(e,t,"SE")}},{key:"_placeInRegion",value:function(e,t,i){switch(e.children[i].childrenCount){case 0:e.children[i].children.data=t,e.children[i].childrenCount=1,this._updateBranchMass(e.children[i],t);break;case 1:e.children[i].children.data.x===t.x&&e.children[i].children.data.y===t.y?(t.x+=this.seededRandom(),t.y+=this.seededRandom()):(this._splitBranch(e.children[i]),this._placeInTree(e.children[i],t));break;case 4:this._placeInTree(e.children[i],t)}}},{key:"_splitBranch",value:function(e){var t=null;1===e.childrenCount&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),null!=t&&this._placeInTree(e,t)}},{key:"_insertRegion",value:function(e,t){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*e.size;switch(t){case"NW":i=e.range.minX,o=e.range.minX+r,n=e.range.minY,s=e.range.minY+r;break;case"NE":i=e.range.minX+r,o=e.range.maxX,n=e.range.minY,s=e.range.minY+r;break;case"SW":i=e.range.minX,o=e.range.minX+r,n=e.range.minY+r,s=e.range.maxY;break;case"SE":i=e.range.minX+r,o=e.range.maxX,n=e.range.minY+r,s=e.range.maxY}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}},{key:"_debug",value:function(e,t){void 0!==this.barnesHutTree&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}},{key:"_drawBranch",value:function(e,t,i){void 0===i&&(i="#FF0000"),4===e.childrenCount&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=i,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}]),o);function o(e,t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,o),this.body=e,this.physicsBody=t,this.barnesHutTree,this.setOptions(i),this.randomSeed=5}function n(e,t){for(var i=0;i=e&&i.push(n.id)}for(var s=0;so?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(e,t){var i=arguments.length<=2||void 0===arguments[2]||arguments[2];if(void 0===e)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[e])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0!==this.body.nodes[e].containedNodes){var o=this.body.nodes[e],n=o.containedNodes,s=o.containedEdges;if(void 0!==t&&void 0!==t.releaseFunction&&"function"==typeof t.releaseFunction){var r={},a={x:o.x,y:o.y};for(var h in n)if(n.hasOwnProperty(h)){var l=this.body.nodes[h];r[h]={x:l.x,y:l.y}}var d=t.releaseFunction(a,r);for(var c in n)if(n.hasOwnProperty(c)){var u=this.body.nodes[c];void 0!==d[c]&&(u.x=void 0===d[c].x?o.x:d[c].x,u.y=void 0===d[c].y?o.y:d[c].y)}}else for(var p in n)if(n.hasOwnProperty(p)){var f=this.body.nodes[p];!1===(f=n[p]).options.fixed.x&&(f.x=o.x),!1===f.options.fixed.y&&(f.y=o.y)}for(var m in n)if(n.hasOwnProperty(m)){var g=this.body.nodes[m];g.vx=o.vx,g.vy=o.vy,g.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[m]}for(var v=[],y=0;yo&&(o=s.edges.length),e+=s.edges.length,t+=Math.pow(s.edges.length,2),i+=1}e/=i;var r=(t/=i)-Math.pow(e,2),a=Math.sqrt(r),h=Math.floor(e+2*a);return o(t=e[i[a]]).shape.boundingBox.left&&(s=t.shape.boundingBox.left),rt.shape.boundingBox.top&&(o=t.shape.boundingBox.top),n(t=e[i[a]]).x&&(s=t.x),rt.y&&(o=t.y),n.5*this.body.nodeIndices.length)return void this.fit(e,!1);i=c.default.getRange(this.body.nodes,e.nodes),o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822,o*=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600)}else{this.body.emitter.emit("_resizeNodes"),i=c.default.getRange(this.body.nodes,e.nodes);var r=1.1*Math.abs(i.maxX-i.minX),a=1.1*Math.abs(i.maxY-i.minY),h=this.canvas.frame.canvas.clientWidth/r,l=this.canvas.frame.canvas.clientHeight/a;o=h<=l?h:l}1o&&(s=o-t-this.padding),sn&&(r=n-i-this.padding),rO.options.hierarchical.nodeSpacing){var s={};s[e.id]=!0;var r={};r[t.id]=!0,k(e,s),k(t,r);var a=function(e,t){var i=g(e.id),o=g(t.id);return Math.min(i,o)}(e,t),h=S(s,a),l=D(h,4),d=(l[0],l[1]),c=(l[2],l[3],S(r,a)),u=D(c,4),p=u[0],f=(u[1],u[2]);if(u[3],Math.abs(d-p)>O.options.hierarchical.nodeSpacing){var m=d-p+O.options.hierarchical.nodeSpacing;m<-f+O.options.hierarchical.nodeSpacing&&(m=-f+O.options.hierarchical.nodeSpacing),m<0&&(O._shiftBlock(t.id,m),(C=!0)===i&&O._centerParent(t))}}}function h(e,l){for(var t=l.id,i=l.edges,o=O.hierarchicalLevels[l.id],s=O.options.hierarchical.levelSeparation*O.options.hierarchical.levelSeparation,r={},n=[],a=0;an.hierarchicalLevels[e.id]){var i=e.id,o=t.id;void 0===n.hierarchicalChildrenReference[i]&&(n.hierarchicalChildrenReference[i]=[]),n.hierarchicalChildrenReference[i].push(o),void 0===n.hierarchicalParentReference[o]&&(n.hierarchicalParentReference[o]=[]),n.hierarchicalParentReference[o].push(i)}})}},{key:"_crawlNetwork",value:function(){function n(e,t){if(void 0===a[e.id]){void 0===s.hierarchicalTrees[e.id]&&(s.hierarchicalTrees[e.id]=t,s.treeIndex=Math.max(t,s.treeIndex)),a[e.id]=!0;for(var i=void 0,o=0;o"===D||"--"===D;){var i,o=D;c();var n=f(e);if(n)i=n;else{if(E!=k.IDENTIFIER)throw v("Identifier or subgraph expected");a(e,{id:i=D}),c()}l(e,d(e,t,i,o,g())),t=i}}function g(){for(var e=null;"["===D;){for(c(),e={};""!==D&&"]"!=D;){if(E!=k.IDENTIFIER)throw v("Attribute name expected");var t=D;if(c(),"="!=D)throw v("Equal sign = expected");if(c(),E!=k.IDENTIFIER)throw v("Attribute value expected");r(e,t,D),c(),","==D&&c()}if("]"!=D)throw v("Bracket ] expected");c()}return e}function v(e){return new SyntaxError(e+', got "'+y(D,30)+'" (char '+C+")")}function y(e,t){return e.length<=t?e:e.substr(0,27)+"..."}function b(e,t,i){for(var o=t.split("."),n=o.pop(),s=e,r=0;r":!0,"--":!0},O="",C=0,M="",D="",E=k.NULL,T=/[a-zA-Z_0-9.:#]/;t.parseDOT=i,t.DOTToGraph=function(e){var t=i(e),s={nodes:[],edges:[],options:{}};if(t.nodes&&t.nodes.forEach(function(e){var t={id:e.id,label:String(e.label||e.id)};h(t,w(e.attr,_)),t.image&&(t.shape="image"),s.nodes.push(t)}),t.edges){function r(e){var t={from:e.from,to:e.to};return h(t,w(e.attr,x)),t.arrows="->"===e.type?"to":void 0,t}t.edges.forEach(function(n){var e,t;e=n.from instanceof Object?n.from.nodes:{id:n.from},t=n.to instanceof Object?n.to.nodes:{id:n.to},n.from instanceof Object&&n.from.edges&&n.from.edges.forEach(function(e){var t=r(e);s.edges.push(t)}),function(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}(e,t,function(e,t){var i=d(s,e.id,t.id,n.type,n.attr),o=r(i);s.edges.push(o)}),n.to instanceof Object&&n.to.edges&&n.to.edges.forEach(function(e){var t=r(e);s.edges.push(t)})})}return t.attr&&(s.options=t.attr),s}},function(e,t){t.parseGephi=function(e,t){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==t&&(void 0!==t.fixed&&(n.nodes.fixed=t.fixed),void 0!==t.parseColor&&(n.nodes.parseColor=t.parseColor),void 0!==t.inheritColor&&(n.edges.inheritColor=t.inheritColor));for(var s=e.edges,r=e.nodes,a=0;a