# HG changeset patch # User Daniel Wolff # Date 1455047642 -3600 # Node ID 493bcb69166c2f032e678c21285a0d9d3d1bd955 added public content diff -r 000000000000 -r 493bcb69166c $/$ --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/$/$ Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,1 @@ +./ \ No newline at end of file diff -r 000000000000 -r 493bcb69166c $/all.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/$/all.css Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,36 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0} +/*! jQuery UI - v1.11.0 - 2014-06-26 +* http://jqueryui.com +* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT +*/.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:alpha(opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-0.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:0;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("images/animated-overlay.gif");height:100%;filter:alpha(opacity=25);opacity:.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px .4em;margin:.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:.4em 2.1em .4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-0.3em;margin-left:-0.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-0.3em;margin-left:0;margin-bottom:-0.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:0;background:0;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:0;border-bottom:0;border-right:0}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:0}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #e78f08;background:#f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:alpha(opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:alpha(opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:alpha(opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:alpha(opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:alpha(opacity=20);border-radius:5px} +/*! + * DML Main Vis + * http://dml.city.ac.uk/ + */ +.ui-widget{font-family:'Web Open Sans',Verdana,sans-serif;font-size:14px;line-height:20px}.ui-widget-content{background-image:none}.ui-menu .ui-menu-item{list-style-image:none}.ui-menu-item{font-weight:normal !important;padding-left:4px !important}.ui-autocomplete{background:#eee;border:1px solid #ccc;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius-bottomright:5px;-moz-background-clip:padding;border-bottom-right-radius:5px;background-clip:padding-box;overflow:hidden}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{background-image:none}.ui_config-grid-type_collection .ui-state-focus{color:#3182bd;background:0;border-color:#eee}.ui_config-grid-type_recording .ui-state-focus{color:#31a354;background:0;border-color:#eee} +@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/Light/OpenSans-Light.eot');src:url('../$/fonts/OpenSans/Light/OpenSans-Light.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/Light/OpenSans-Light.woff') format('woff'),url('../$/fonts/OpenSans/Light/OpenSans-Light.ttf') format('truetype'),url('../$/fonts/OpenSans/Light/OpenSans-Light.svg#OpenSansLight') format('svg');font-weight:300;font-style:normal}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/LightItalic/OpenSans-LightItalic.eot');src:url('../$/fonts/OpenSans/LightItalic/OpenSans-LightItalic.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/LightItalic/OpenSans-LightItalic.woff') format('woff'),url('../$/fonts/OpenSans/LightItalic/OpenSans-LightItalic.ttf') format('truetype'),url('../$/fonts/OpenSans/LightItalic/OpenSans-LightItalic.svg#OpenSansLightItalic') format('svg');font-weight:300;font-style:italic}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/Regular/OpenSans-Regular.eot');src:url('../$/fonts/OpenSans/Regular/OpenSans-Regular.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/Regular/OpenSans-Regular.woff') format('woff'),url('../$/fonts/OpenSans/Regular/OpenSans-Regular.ttf') format('truetype'),url('../$/fonts/OpenSans/Regular/OpenSans-Regular.svg#OpenSansRegular') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/Italic/OpenSans-Italic.eot');src:url('../$/fonts/OpenSans/Italic/OpenSans-Italic.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/Italic/OpenSans-Italic.woff') format('woff'),url('../$/fonts/OpenSans/Italic/OpenSans-Italic.ttf') format('truetype'),url('../$/fonts/OpenSans/Italic/OpenSans-Italic.svg#OpenSansItalic') format('svg');font-weight:normal;font-style:italic}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/Semibold/OpenSans-Semibold.eot');src:url('../$/fonts/OpenSans/Semibold/OpenSans-Semibold.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/Semibold/OpenSans-Semibold.woff') format('woff'),url('../$/fonts/OpenSans/Semibold/OpenSans-Semibold.ttf') format('truetype'),url('../$/fonts/OpenSans/Semibold/OpenSans-Semibold.svg#OpenSansSemibold') format('svg');font-weight:600;font-style:normal}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/SemiboldItalic/OpenSans-SemiboldItalic.eot');src:url('../$/fonts/OpenSans/SemiboldItalic/OpenSans-SemiboldItalic.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/SemiboldItalic/OpenSans-SemiboldItalic.woff') format('woff'),url('../$/fonts/OpenSans/SemiboldItalic/OpenSans-SemiboldItalic.ttf') format('truetype'),url('../$/fonts/OpenSans/SemiboldItalic/OpenSans-SemiboldItalic.svg#OpenSansSemiboldItalic') format('svg');font-weight:600;font-style:italic}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/Bold/OpenSans-Bold.eot');src:url('../$/fonts/OpenSans/Bold/OpenSans-Bold.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/Bold/OpenSans-Bold.woff') format('woff'),url('../$/fonts/OpenSans/Bold/OpenSans-Bold.ttf') format('truetype'),url('../$/fonts/OpenSans/Bold/OpenSans-Bold.svg#OpenSansBold') format('svg');font-weight:bold;font-style:normal}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/BoldItalic/OpenSans-BoldItalic.eot');src:url('../$/fonts/OpenSans/BoldItalic/OpenSans-BoldItalic.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/BoldItalic/OpenSans-BoldItalic.woff') format('woff'),url('../$/fonts/OpenSans/BoldItalic/OpenSans-BoldItalic.ttf') format('truetype'),url('../$/fonts/OpenSans/BoldItalic/OpenSans-BoldItalic.svg#OpenSansBoldItalic') format('svg');font-weight:bold;font-style:italic}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/ExtraBold/OpenSans-ExtraBold.eot');src:url('../$/fonts/OpenSans/ExtraBold/OpenSans-ExtraBold.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/ExtraBold/OpenSans-ExtraBold.woff') format('woff'),url('../$/fonts/OpenSans/ExtraBold/OpenSans-ExtraBold.ttf') format('truetype'),url('../$/fonts/OpenSans/ExtraBold/OpenSans-ExtraBold.svg#OpenSansExtrabold') format('svg');font-weight:800;font-style:normal}@font-face{font-family:'Web Open Sans';src:url('../$/fonts/OpenSans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot');src:url('../$/fonts/OpenSans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.eot?#iefix') format('embedded-opentype'),url('../$/fonts/OpenSans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.woff') format('woff'),url('../$/fonts/OpenSans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.ttf') format('truetype'),url('../$/fonts/OpenSans/ExtraBoldItalic/OpenSans-ExtraBoldItalic.svg#OpenSansExtraboldItalic') format('svg');font-weight:800;font-style:italic} +html,body{height:100%;overflow:hidden} + +.app{width:10px;height:20px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-border-bottom-right-radius:10px;-webkit-background-clip:padding-box;-moz-border-radius-bottomright:10px;-moz-background-clip:padding;border-bottom-right-radius:10px;background-clip:padding-box;background:#fff}.app__assets-version-indicator{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;position:fixed;z-index:9999;bottom:0;left:0;padding:0 5px;height:18px;line-height:18px;background-color:#58f97b;-webkit-border-top-right-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius-topright:5px;-moz-background-clip:padding;border-top-right-radius:5px;background-clip:padding-box;text-shadow:0 0 3px #fff,-1px -1px 0 rgba(255,255,255,0.2),1px -1px 0 rgba(255,255,255,0.2),-1px 1px 0 rgba(255,255,255,0.2),1px 1px 0 rgba(255,255,255,0.2)} +.cgpma{cursor:default}.config-grid_type_collection .config-grid-panel_dimension_entity .cgpma{padding:12px 0 0 13px}.config-grid_type_recording .config-grid-panel_dimension_entity .cgpma{padding:10px 0 0 13px}.config-grid-panel_dimension_view .cgpma{padding:10px 15px 10px 15px}.cgpma__explanation{padding-left:5px;padding-right:5px;padding-bottom:8px}.config-grid_type_collection .cgpma__explanation{color:#8d9295}.config-grid_type_recording .cgpma__explanation{color:#8d938f}.config-grid-panel_dimension_entity .cgpma__explanation{display:inline-block}.config-grid_type_recording .config-grid-panel_dimension_entity .cgpma__explanation{padding-top:3px}.cgpma__explanation_for-previous-input{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;margin-top:-6px}.cgpma__explanation_for-previous-tickbox{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px}.cgpma__explanation_sticked-to-left{padding-left:0}.cgpma__explanation_second-row{padding-top:25px}.cgpma__pseudo-link{color:#909090;cursor:pointer;border-bottom:1px dotted;display:inline}.cgpma__pseudo-link:hover{color:#000}.config-grid-panel_dimension_entity .cgpma__input-block{display:inline-block;padding:0 15px 0 0;min-width:150px;vertical-align:top}.config-grid-panel_dimension_view .cgpma__input-block{margin-bottom:10px}.cgpma__input-block_location_first-in-group{margin-top:20px}.cgpma__label{padding:0 5px 1px;color:#909090}.config-grid_type_collection .cgpma__label{color:#8d9295}.config-grid_type_recording .cgpma__label{color:#8d938f}.cgpma__label a{color:#909090;text-decoration:none;border-bottom:1px solid rgba(0,0,0,0.1)}.config-grid_type_collection .cgpma__label a{color:#8d9295}.config-grid_type_recording .cgpma__label a{color:#8d938f}.cgpma__label a:hover{color:#000 !important;border-bottom:1px solid rgba(0,0,0,0.4)}.cgpma__label_without-left-padding{padding-left:0}.cgpma__textfield{border-radius:5px;height:20px;position:relative;border-top:3px solid;border-right:5px solid;border-bottom:3px solid;border-left:5px solid}.config-grid-panel_dimension_entity .cgpma__textfield{width:150px}.cgpma__textfield-input{outline:none !important;font-family:'Web Open Sans',Verdana,sans-serif;font-size:14px;line-height:20px;background:0;position:relative;width:100%;height:100%;margin:0;border:0;padding:3px 5px;top:-3px;left:-5px;-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box}.cgpma .cgpma__textfield_autocomplete-is-open{-webkit-border-bottom-left-radius:0;-moz-border-radius-bottomleft:0;border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;-webkit-background-clip:padding-box;-moz-border-radius-bottomright:0;-moz-background-clip:padding;border-bottom-right-radius:0;background-clip:padding-box}.cgpma__textfield .ui-autocomplete{font-family:'Web Open Sans',Verdana,sans-serif;font-size:14px;line-height:20px}.cgpma__tickbox{margin-right:15px;padding-left:20px;display:inline-block;min-height:22px;padding-top:3px;position:relative}.cgpma__tickbox_one-per-line{display:block}.cgpma__tickbox_state_enabled{cursor:pointer}.config-grid-panel_dimension_view .cgpma__tickbox_location_first-in-group{margin-top:5px}.cgpma__tickbox_location_last-in-group{margin-right:0}.cgpma__tickbox-tick{position:absolute;border-radius:5px;height:15px;width:15px;left:0;top:5px}.cgpma__tickbox_ticked .cgpma__tickbox-tick{background-repeat:no-repeat;background-position:2px 4px;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAHCAYAAAAxrNxjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGlJREFUeNpi/P//PwMuwMjIKA2k1gHxFwaQQmwYCECK7gExiHMMJDABiJcCMQ+SIjkkRVeBWIIBSeAwSDEWRaIw56kD8XMkxQ+h7PMwRWCFUNUgxU+gCjAUwRVCFatArdoLxELongMIMAANx1tBwGkjIgAAAABJRU5ErkJggg==')}.cgpma__tickbox_type_radio .cgpma__tickbox-tick{border-radius:10px}.cgpma__tickbox_type_radio.cgpma__tickbox_ticked .cgpma__tickbox-tick{background-image:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgaGVpZ2h0PSI1IiB3aWR0aD0iNSI+ICA8Y2lyY2xlIGN4PSIyLjUiIGN5PSIyLjUiIHI9IjIuNSIgZmlsbD0iYmxhY2siIC8+PC9zdmc+');background-position:center center}.config-grid_type_collection .cgpma__textfield,.config-grid_type_collection .cgpma__tickbox-tick{background-color:#d6e6f2;border-color:#d6e6f2}.config-grid_type_recording .cgpma__textfield,.config-grid_type_recording .cgpma__tickbox-tick{background-color:#d6eddd;border-color:#d6eddd}.config-grid_type_collection .cgpma__textfield_status_modified,.config-grid_type_collection .cgpma__tickbox_status_modified .cgpma__tickbox-tick{background-color:#b0b6ba;border-color:#b0b6ba}.config-grid_type_recording .cgpma__textfield_status_modified,.config-grid_type_recording .cgpma__tickbox_status_modified .cgpma__tickbox-tick{background-color:#b0b8b2;border-color:#b0b8b2}.config-grid_type_collection .cgpma__textfield_status_error{background-color:#dab6ba;border-color:#dab6ba}.config-grid_type_recording .cgpma__textfield_status_error{background-color:#dab8b2;border-color:#dab8b2} +.config-grid-cells{position:absolute;bottom:0;right:0;z-index:19;overflow:hidden;left:250px;top:70px}.config-grid_type_recording .config-grid-cells{left:250px;top:44px}.config-grid-cells__container_position_scrollable{position:absolute;top:0;left:0;right:0;bottom:0;overflow:scroll;z-index:60;background:rgba(0,0,0,0)}.config-grid-cells__container_position_fixed{position:absolute;pointer-events:none !important;top:0;left:0;overflow:hidden;z-index:30}.config-grid-cells__space{position:absolute;z-index:61;overflow:hidden;padding-left:20px;padding-right:50px;padding-bottom:50px}.config-grid_type_collection .config-grid-cells__space{padding-top:67px}.config-grid_type_recording .config-grid-cells__space{padding-top:71px}.config-grid-cells__entity-headers-container{position:absolute;top:0;left:20px;right:0;height:10px;overflow:visible;z-index:25}.config-grid_type_collection .config-grid-cells__entity-headers-container{height:67px}.config-grid_type_recording .config-grid-cells__entity-headers-container{height:71px}.config-grid-cells__entity-headers-blind{position:absolute;top:0;left:0;right:0;bottom:0;z-index:26;background:#fff}.config-grid-cells__entity-header{cursor:pointer;position:absolute;top:5px;height:42px;overflow:visible;z-index:27}.config-grid_type_collection .config-grid-cells__entity-header{height:42px}.config-grid_type_recording .config-grid-cells__entity-header{height:46px}.config-grid-cells__entity-header_kind_adder{width:109px;height:30px !important}.config-grid-cells__entity-header_kind_pair .config-grid-cells__entity-header-background{background:#fff !important}.config-grid-cells__entity-header_kind_pair.config-grid-cells__entity-header_selected .config-grid-cells__entity-header-label{color:#909090 !important}.config-grid-cells__entity-header_selected{cursor:default}.config-grid-cells__entity-header-background{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:5px;border:5px solid;background-color:#f0f0f0;border-color:#f0f0f0}.config-grid_type_collection .config-grid-cells__entity-header_selected .config-grid-cells__entity-header-background{background-color:#eaf3f8;border-color:#eaf3f8}.config-grid_type_recording .config-grid-cells__entity-header_selected .config-grid-cells__entity-header-background{background-color:#eaf6ee;border-color:#eaf6ee}.config-grid-cells__entity-header_selected .config-grid-cells__entity-header-background{border-top-left-radius:0;border-top-right-radius:0;top:-10px}.config-grid-cells__entity-header-label{position:absolute;overflow:hidden;white-space:nowrap;top:-4px;bottom:0;left:8px;right:5px;padding-top:8px;color:#909090}.config-grid-cells__entity-header:hover .config-grid-cells__entity-header-label{color:#000}.config-grid_type_collection .config-grid-cells__entity-header_selected:hover .config-grid-cells__entity-header-label,.config-grid_type_collection .config-grid-cells__entity-header_selected .config-grid-cells__entity-header-label{color:#8d9295}.config-grid_type_recording .config-grid-cells__entity-header_selected:hover .config-grid-cells__entity-header-label,.config-grid_type_recording .config-grid-cells__entity-header_selected .config-grid-cells__entity-header-label{color:#8d938f}.config-grid-cells__entity-header-label_row2{top:14px}.config-grid_type_collection .config-grid-cells__entity-header-label_row2{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px}.config-grid-cells__entity-header_kind_adder .config-grid-cells__entity-header-label{position:relative;text-align:center;left:0;right:0;padding-left:0;padding-right:0}.config-grid-cells__entity-header-label-fader{position:absolute;top:5px;bottom:5px;right:5px;width:10px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigyNDAsIDI0MCwgMjQwKSIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxNSUiIHN0b3AtY29sb3I9InJnYigyNDAsIDI0MCwgMjQwKSIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+PHN0b3Agb2Zmc2V0PSIzMCUiIHN0b3AtY29sb3I9InJnYigyNDAsIDI0MCwgMjQwKSIgc3RvcC1vcGFjaXR5PSIwLjUiLz48c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0icmdiKDI0MCwgMjQwLCAyNDApIiBzdG9wLW9wYWNpdHk9IjAuNzUiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmMGYwZjAiIHN0b3Atb3BhY2l0eT0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNsZXNzaGF0LWdlbmVyYXRlZCkiIC8+PC9zdmc+);background-image:-webkit-linear-gradient(left,rgba(240,240,240,0) 0,rgba(240,240,240,0.25) 15%,rgba(240,240,240,0.5) 30%,rgba(240,240,240,0.75) 60%,#f0f0f0 100%);background-image:-moz-linear-gradient(left,rgba(240,240,240,0) 0,rgba(240,240,240,0.25) 15%,rgba(240,240,240,0.5) 30%,rgba(240,240,240,0.75) 60%,#f0f0f0 100%);background-image:-o-linear-gradient(left,rgba(240,240,240,0) 0,rgba(240,240,240,0.25) 15%,rgba(240,240,240,0.5) 30%,rgba(240,240,240,0.75) 60%,#f0f0f0 100%);background-image:linear-gradient(to right,rgba(240,240,240,0) 0,rgba(240,240,240,0.25) 15%,rgba(240,240,240,0.5) 30%,rgba(240,240,240,0.75) 60%,#f0f0f0 100%)}.config-grid_type_collection .config-grid-cells__entity-header_selected .config-grid-cells__entity-header-label-fader{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigyMzQsIDI0MywgMjQ4KSIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxNSUiIHN0b3AtY29sb3I9InJnYigyMzQsIDI0MywgMjQ4KSIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+PHN0b3Agb2Zmc2V0PSIzMCUiIHN0b3AtY29sb3I9InJnYigyMzQsIDI0MywgMjQ4KSIgc3RvcC1vcGFjaXR5PSIwLjUiLz48c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0icmdiKDIzNCwgMjQzLCAyNDgpIiBzdG9wLW9wYWNpdHk9IjAuNzUiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlYWYzZjgiIHN0b3Atb3BhY2l0eT0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNsZXNzaGF0LWdlbmVyYXRlZCkiIC8+PC9zdmc+);background-image:-webkit-linear-gradient(left,rgba(234,243,248,0) 0,rgba(234,243,248,0.25) 15%,rgba(234,243,248,0.5) 30%,rgba(234,243,248,0.75) 60%,#eaf3f8 100%);background-image:-moz-linear-gradient(left,rgba(234,243,248,0) 0,rgba(234,243,248,0.25) 15%,rgba(234,243,248,0.5) 30%,rgba(234,243,248,0.75) 60%,#eaf3f8 100%);background-image:-o-linear-gradient(left,rgba(234,243,248,0) 0,rgba(234,243,248,0.25) 15%,rgba(234,243,248,0.5) 30%,rgba(234,243,248,0.75) 60%,#eaf3f8 100%);background-image:linear-gradient(to right,rgba(234,243,248,0) 0,rgba(234,243,248,0.25) 15%,rgba(234,243,248,0.5) 30%,rgba(234,243,248,0.75) 60%,#eaf3f8 100%)}.config-grid_type_recording .config-grid-cells__entity-header_selected .config-grid-cells__entity-header-label-fader{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigyMzQsIDI0NiwgMjM4KSIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxNSUiIHN0b3AtY29sb3I9InJnYigyMzQsIDI0NiwgMjM4KSIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+PHN0b3Agb2Zmc2V0PSIzMCUiIHN0b3AtY29sb3I9InJnYigyMzQsIDI0NiwgMjM4KSIgc3RvcC1vcGFjaXR5PSIwLjUiLz48c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0icmdiKDIzNCwgMjQ2LCAyMzgpIiBzdG9wLW9wYWNpdHk9IjAuNzUiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlYWY2ZWUiIHN0b3Atb3BhY2l0eT0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNsZXNzaGF0LWdlbmVyYXRlZCkiIC8+PC9zdmc+);background-image:-webkit-linear-gradient(left,rgba(234,246,238,0) 0,rgba(234,246,238,0.25) 15%,rgba(234,246,238,0.5) 30%,rgba(234,246,238,0.75) 60%,#eaf6ee 100%);background-image:-moz-linear-gradient(left,rgba(234,246,238,0) 0,rgba(234,246,238,0.25) 15%,rgba(234,246,238,0.5) 30%,rgba(234,246,238,0.75) 60%,#eaf6ee 100%);background-image:-o-linear-gradient(left,rgba(234,246,238,0) 0,rgba(234,246,238,0.25) 15%,rgba(234,246,238,0.5) 30%,rgba(234,246,238,0.75) 60%,#eaf6ee 100%);background-image:linear-gradient(to right,rgba(234,246,238,0) 0,rgba(234,246,238,0.25) 15%,rgba(234,246,238,0.5) 30%,rgba(234,246,238,0.75) 60%,#eaf6ee 100%)}.config-grid-cells__entity-header_kind_pair .config-grid-cells__entity-header-label-fader,.config-grid-cells__entity-header_kind_pair.config-grid-cells__entity-header_selected .config-grid-cells__entity-header-label-fader{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigyNTUsIDI1NSwgMjU1KSIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxNSUiIHN0b3AtY29sb3I9InJnYigyNTUsIDI1NSwgMjU1KSIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+PHN0b3Agb2Zmc2V0PSIzMCUiIHN0b3AtY29sb3I9InJnYigyNTUsIDI1NSwgMjU1KSIgc3RvcC1vcGFjaXR5PSIwLjUiLz48c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0icmdiKDI1NSwgMjU1LCAyNTUpIiBzdG9wLW9wYWNpdHk9IjAuNzUiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNsZXNzaGF0LWdlbmVyYXRlZCkiIC8+PC9zdmc+);background-image:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,0.25) 15%,rgba(255,255,255,0.5) 30%,rgba(255,255,255,0.75) 60%,#fff 100%);background-image:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,0.25) 15%,rgba(255,255,255,0.5) 30%,rgba(255,255,255,0.75) 60%,#fff 100%);background-image:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,0.25) 15%,rgba(255,255,255,0.5) 30%,rgba(255,255,255,0.75) 60%,#fff 100%);background-image:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,0.25) 15%,rgba(255,255,255,0.5) 30%,rgba(255,255,255,0.75) 60%,#fff 100%)}.config-grid-cells__view-headers-container{position:absolute;left:0;top:0;right:0;padding-right:20px;overflow:visible;z-index:22}.config-grid_type_collection .config-grid-cells__view-headers-container{top:67px}.config-grid_type_recording .config-grid-cells__view-headers-container{top:71px}.config-grid-cells__view-headers-blind{position:absolute;top:0;left:0;bottom:0;width:20px;z-index:23;background:#fff}.config-grid-cells__view-header{cursor:pointer;position:absolute;top:0;left:20px;right:0;height:26px;overflow:visible;z-index:24}.config-grid-cells__view-header_kind_adder{right:auto;width:auto}.config-grid-cells__view-header_selected{cursor:default}.config-grid-cells__view-header-background{position:absolute;top:0;left:0;right:0;bottom:0;border-top-left-radius:5px;border-bottom-left-radius:5px;background-color:#f0f0f0}.config-grid_type_collection .config-grid-cells__view-header_selected .config-grid-cells__view-header-background{background-color:#eaf3f8}.config-grid_type_recording .config-grid-cells__view-header_selected .config-grid-cells__view-header-background{background-color:#eaf6ee}.config-grid-cells__view-header_kind_adder .config-grid-cells__view-header-background{border-top-right-radius:5px;border-bottom-right-radius:5px}.config-grid-cells__view-header_selected .config-grid-cells__view-header-background{border-top-left-radius:0;border-bottom-left-radius:0;left:-20px}.config-grid-cells__view-header-label{position:absolute;overflow:hidden;white-space:nowrap;top:0;left:0;right:0;bottom:0;padding-left:8px;padding-right:8px;padding-top:3px;color:#909090}.config-grid-cells__view-header:hover .config-grid-cells__view-header-label{color:#000}.config-grid_type_collection .config-grid-cells__view-header_selected:hover .config-grid-cells__view-header-label,.config-grid_type_collection .config-grid-cells__view-header_selected .config-grid-cells__view-header-label{color:#8d9295}.config-grid_type_recording .config-grid-cells__view-header_selected:hover .config-grid-cells__view-header-label,.config-grid_type_recording .config-grid-cells__view-header_selected .config-grid-cells__view-header-label{color:#8d938f}.config-grid-cells__view-header_kind_adder .config-grid-cells__view-header-label{position:relative}.config-grid-cells__view-header-label-part_modified{text-decoration:line-through}.config-grid-cells__corner-blind{display:block;position:absolute;top:0;left:0;width:20px;z-index:29;background:#fff}.config-grid_type_collection .config-grid-cells__corner-blind{height:67px}.config-grid_type_recording .config-grid-cells__corner-blind{height:71px}.config-grid-cells__vis-instances-container{position:absolute;left:20px;top:0;width:0;height:0;overflow:visible;z-index:21}.config-grid_type_collection .config-grid-cells__vis-instances-container{top:67px}.config-grid_type_recording .config-grid-cells__vis-instances-container{top:71px}.config-grid-cells__vis-instance{background:#fff;position:absolute;left:0;top:0;overflow:hidden} +.config-grid-panel{position:absolute;z-index:30}.config-grid-panel_dimension_entity{top:0;right:0;left:270px;height:70px}.config-grid_type_recording .config-grid-panel_dimension_entity{left:270px;height:44px}.config-grid-panel_dimension_view{bottom:0;top:137px;width:250px}.config-grid_type_recording .config-grid-panel_dimension_view{top:115px;width:250px}.config-grid-panel__background{position:absolute;top:0;left:0;right:0;bottom:0;background:#f0f0f0}.config-grid_type_collection .config-grid-panel__background{background:#eaf3f8}.config-grid_type_recording .config-grid-panel__background{background:#eaf6ee}.config-grid-panel_dimension_entity .config-grid-panel__background{border-bottom-left-radius:5px}.config-grid-panel_dimension_view .config-grid-panel__background{border-top-right-radius:5px}.config-grid-panel__main-area-wrapper{position:absolute;overflow:hidden}.config-grid-panel_dimension_entity .config-grid-panel__main-area-wrapper{position:absolute;top:0;white-space:nowrap;left:77.5px;right:0;bottom:0;overflow:hidden}.config-grid-panel_dimension_view .config-grid-panel__main-area-wrapper{position:absolute;top:35px;left:0;right:0;bottom:0;overflow:hidden}.config-grid-panel__commands{text-align:center;line-height:25px}.config-grid-panel_dimension_entity .config-grid-panel__commands{padding-top:10px;position:relative;margin-left:12px;float:left}.config-grid-panel_dimension_entity .config-grid-panel__commands{width:67.5px}.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__commands{width:62.5px;text-align:left}.config-grid_type_recording .config-grid-panel_dimension_entity.config-grid-panel_master-kind_pair .config-grid-panel__commands{width:142.5px}.config-grid-panel_dimension_view .config-grid-panel__commands{padding-top:10px;height:25px}.config-grid-panel_dimension_entity .config-grid-panel__command-group{display:block;position:absolute;width:25px;height:50px}.config-grid-panel_dimension_view .config-grid-panel__command-group,.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__command-group{display:inline-block;width:55px;height:25px}.config-grid-panel_dimension_entity .config-grid-panel__command-group_type_clone-delete{padding-bottom:10px}.config-grid-panel_dimension_entity .config-grid-panel__command-group_type_discard-apply{left:36.25px}.config-grid-panel_dimension_view .config-grid-panel__command-group_type_clone-delete{padding-right:10px;margin-right:10px}.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__command-group_type_clone-delete{padding-right:10px;margin-right:0}.config-grid-panel__command{cursor:default;overflow:visible;position:relative;display:inline-block;width:25px;height:25px;opactity:.5;border-radius:5px}.config-grid-panel_dimension_entity .config-grid-panel__command{display:block}.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__command{display:inline-block}.config-grid-panel__command i{display:block;position:absolute;width:25px;height:25px;background-repeat:no-repeat;background-position:center center;opacity:.05}.config-grid-panel__command_state_enabled{cursor:pointer}.config-grid-panel__command_state_enabled i{opacity:.35}.config-grid-panel__command_state_enabled:hover i{opacity:1}.config-grid-panel__command_flashing i,.config-grid-panel__command_state_enabled:active i{top:1px}.config-grid-panel_dimension_entity .config-grid-panel__command_action_previous i{background-image:url("../$/bem/config-grid-panel/command/arrow_left.svg")}.config-grid-panel_dimension_view .config-grid-panel__command_action_previous i{background-image:url("../$/bem/config-grid-panel/command/arrow_up.svg")}.config-grid-panel_dimension_entity .config-grid-panel__command_action_next i{background-image:url("../$/bem/config-grid-panel/command/arrow_down.svg")}.config-grid-panel_dimension_view .config-grid-panel__command_action_next i{background-image:url("../$/bem/config-grid-panel/command/arrow_right.svg")}.config-grid-panel__command_action_clone i{background-image:url("../$/bem/config-grid-panel/command/clone_filled.svg")}.config-grid-panel__command_action_delete i{background-image:url("../$/bem/config-grid-panel/command/delete_filled.svg")}.config-grid-panel__command_action_discard i{background-image:url("../$/bem/config-grid-panel/command/discard_r.svg")}.config-grid-panel__command_action_apply i{background-image:url("../$/bem/config-grid-panel/command/apply_r.svg")}.config-grid-panel_dimension_view .config-grid-panel__command_action_clone,.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__command_action_clone{margin-right:5px}.config-grid-panel_dimension_view .config-grid-panel__command_action_discard,.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__command_action_discard{margin-right:5px}.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__command-group_type_discard-apply{left:67.5px}.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__main-area-wrapper{left:37.5px}.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__command-group_type_discard-apply{display:none}.config-grid_type_recording .config-grid-panel_dimension_entity.config-grid-panel_master-kind_pair .config-grid-panel__command-group_type_discard-apply{display:inline-block}.config-grid_type_recording .config-grid-panel_dimension_entity .config-grid-panel__main-area-wrapper{left:67.5px}.config-grid_type_recording .config-grid-panel_dimension_entity.config-grid-panel_master-kind_pair .config-grid-panel__main-area-wrapper{left:137.5px}.config-grid-panel__border-radius-fixer-container{position:absolute;height:5px;width:5px}.config-grid-panel_dimension_entity .config-grid-panel__border-radius-fixer-container{bottom:0;left:0}.config-grid-panel_dimension_view .config-grid-panel__border-radius-fixer-container{top:0;right:0}.config-grid-panel__border-radius-fixer{position:absolute;top:0;left:0;height:5px;width:5px}.config-grid_type_collection .config-grid-panel__border-radius-fixer{background:#eaf3f8}.config-grid_type_recording .config-grid-panel__border-radius-fixer{background:#eaf6ee}.config-grid-panel__suggestion{padding-left:8px;padding-bottom:3px}.config-grid-panel__pseudo-link{color:#909090;cursor:pointer;border-bottom:1px dotted;display:inline}.config-grid-panel__pseudo-link:hover{color:#000} +.config-grid{background:#fff;overflow:hidden}.config-grid__header{cursor:default;font-size:28px;font-weight:300;position:relative;top:5px;left:0;text-align:center;line-height:32px}.config-grid_type_collection .config-grid__header{color:#adcde5;width:250px}.config-grid_type_recording .config-grid__header{color:#addabb;width:250px}.nojs .config-grid__loader,.lteie9 .config-grid__loader{display:none !important}.js .config-grid__loader{position:absolute;display:block;left:100px;top:10px;opacity:.3;width:50px;height:50px;background:no-repeat top left url("data:image/gif;base64,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")}.config-grid__loading-error{display:none;color:#900;position:absolute;font-size:28px;line-height:34px;font-weight:300;left:270px;top:82px;right:30px;z-index:20}.config-grid__loading-error_type_noscript{display:block;max-width:560px}.lteie9 .config-grid__loading-error_type_noscript{display:none !important}.lteie9 .config-grid__loading-error_type_old-ie{display:block !important;max-width:570px}.config-grid__loading-error a{color:#000;text-decoration:none;border-bottom:1px solid #999}.config-grid__loading-error a:hover{color:#666}.config-grid__loading-error a:active{color:#999} +.help-content{padding:0 25px 25px;position:relative;border-bottom:0 solid #fff}.help-content p{margin-top:10px;max-width:50em;padding-right:15px}.help-content .p_indented{margin-left:25px}.help-content .a_type_pseudo{color:#000;text-decoration:none;border-bottom:1px rgba(0,0,0,0.5) dotted}.help-content h1{font-weight:300;font-size:28px;line-height:34px;padding-top:16px}.help-content h2{font-weight:300;margin-top:20px;line-height:24px;padding-top:19px;font-size:20px}.help-content h3{font-weight:600;padding-top:20px;margin-top:10px}.help-content h3+p{margin-top:0}.help-content .key{display:inline-block;border:1px solid #ccc;background:#eee;border-radius:4px;padding:.2em .5em 0;font-size:.8em;margin-bottom:-10px;min-width:.8em;text-align:center;text-indent:0;-webkit-box-shadow:inset 0 0 3px 1px rgba(119,119,119,0.1);-moz-box-shadow:inset 0 0 3px 1px rgba(119,119,119,0.1);box-shadow:inset 0 0 3px 1px rgba(119,119,119,0.1)}.help-content .key_lifted{vertical-align:top;padding-top:.1em;margin-top:-0.4em}.help-content .key_bracket{padding-top:.1em;padding-bottom:.05em}.help-content .key_arrow{vertical-align:top;line-height:1.9em;padding-top:0;padding-bottom:.05em}.help-content .action-plus{padding:0 .45em;font-size:.8em}.help-content .action-or{padding:0 .1em 0 .2em;font-size:.8em}.help-content .action-comma{padding:0 .8em 0 .3em;font-size:.8em}.help-content .action{font-style:italic}.help-content b{font-weight:bold}.help-content dt{margin-top:1.4em;text-indent:-3em;margin-left:3em}.help-content dt.sameline{margin-bottom:-1.7em}.help-content dd{margin-top:.3em;margin-left:3em}.help-content .dd-with-small-indent{margin-top:.2em}.help-content .nobr{white-space:nowrap}.help-content .sup{vertical-align:super;font-size:smaller}.help-content .image-block{margin-top:1.4em;padding:.5em 0}.help-content .image-block_centered{margin-top:1em;text-align:center;padding-right:10%}@media all and (max-width:875px){.help-content .image-block_shrinkable img{margin-left:-146px}}.help-content .t-bracket-space{padding-right:.25em}.help-content .t-bracket{margin-left:-0.25em}.help-content .image-title{display:block;font-size:.8em;padding:.8em 0 0;color:#999;text-align:center}.help-content .image-in-dd{display:block;margin-top:1em}.help-content .controls-dl-1,.help-content .controls-dl-2{max-width:50em;padding:0 30px 0 0}.help-content .controls-dl-2{margin-top:1.4em}.help-content .config-grid-panel-command-demo{opacity:.35;display:inline-block;height:14px;width:14px;background-size:14px}.help-content .config-grid-panel-command-demo_action_clone{background-image:url("../$/bem/config-grid-panel/command/clone_filled.svg")}.help-content .config-grid-panel-command-demo_action_delete{background-image:url("../$/bem/config-grid-panel/command/delete_filled.svg")}.help-content .config-grid-panel-command-demo_action_discard{background-image:url("../$/bem/config-grid-panel/command/discard_r.svg")}.help-content .config-grid-panel-command-demo_action_apply{background-image:url("../$/bem/config-grid-panel/command/apply_r.svg")}.help-content .mode{display:inline-block;border-radius:4px;padding:.15em .2em .1em;margin:0 -0.1em}.help-content .mode_collection{background:#d6e6f2}.help-content .mode_recording{background:#d6eddd}.help-content .mode_no-margin-left{margin-left:-0.2em} +.help{position:fixed;top:0;left:0;right:0;bottom:0;font-family:'Web Open Sans',Verdana,sans-serif;font-size:14px;line-height:20px;z-index:6000;background:rgba(0,0,0,0.5);display:none}.help_animating{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.help_state_hidden{display:none}.help_state_pre-hidden{pointer-events:none;display:block;opacity:0}.help_state_pre-shown{display:block;opacity:0}.help_state_shown{display:block}.help__body{-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box;position:fixed;top:20px;left:20px;right:20px;bottom:20px;-webkit-box-shadow:0 5px 20px 5px rgba(0,0,0,0.5);-moz-box-shadow:0 5px 20px 5px rgba(0,0,0,0.5);box-shadow:0 5px 20px 5px rgba(0,0,0,0.5);background:#fff;overflow:hidden;z-index:6001}.help__toc-container{position:absolute;top:0;left:0;right:0;bottom:0;right:auto;width:200px;background:#eee}@media all and (max-width:500px){.help__toc-container{display:none}}.help__toc{padding:1em 0 0 0}.help__toc-element{position:relative;display:block;padding:.5em;text-decoration:none;color:#888}.help__toc-element:hover{color:#000}.help__toc-element_current{color:#000;cursor:default}.help__toc-element_hierarchy_1{padding-left:25px}.help__toc-element_hierarchy_2{padding-left:25px}.help__toc-element_hierarchy_3{padding-left:40px}.help__content-container{position:absolute;top:0;left:0;right:0;bottom:0;left:200px;overflow:scroll}@media all and (max-width:500px){.help__content-container{left:0}}.help__closer{position:fixed;cursor:pointer;height:30px;width:30px;background:no-repeat 0 0 url(data:image/png;base64,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);top:5px;left:5px;z-index:6002}.help__closer_position_right{left:auto;right:5px} +.jasmine{position:fixed;top:20px;left:20px;right:20px;bottom:20px;-webkit-box-shadow:0 5px 20px 5px rgba(0,0,0,0.5);-moz-box-shadow:0 5px 20px 5px rgba(0,0,0,0.5);box-shadow:0 5px 20px 5px rgba(0,0,0,0.5);overflow:scroll;z-index:9000;background:#fff;padding:10px}.jasmine_html-reporter{margin:-10px !important} +.main-menu-bar{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.4);-moz-box-shadow:0 2px 2px 0 rgba(0,0,0,0.4);box-shadow:0 2px 2px 0 rgba(0,0,0,0.4);background:#000}.main-menu-bar__logo{cursor:default;position:relative;background:#000;width:auto;float:left;overflow:hidden;height:28px;text-align:left;color:#FFF;padding-right:5px;font-size:28px;font-weight:300;line-height:26px}.main-menu-bar__items_block_help{position:relative;float:left}.main-menu-bar__items_block_undoredo{position:absolute;left:30%;padding-left:30px}.main-menu-bar__items_block_misc{position:absolute;right:0}.main-menu-bar__item{float:left;display:block;height:28px}.main-menu-bar__item a{display:block;color:#444;cursor:default;text-decoration:none;line-height:28px;height:28px;padding:0 10px}.main-menu-bar__item a:active,.main-menu-bar__item_flashing{background:#333}.main-menu-bar__item a:focus{outline:0}.main-menu-bar__item_state_enabled a{color:#ccc;cursor:pointer}.main-menu-bar__item_state_enabled a:hover{color:#fff}.main-menu-bar__item_state_enabled a:active,.main-menu-bar__item_state_enabled.main-menu-bar__item_flashing a{color:#fff;background:#333}.main-menu-bar__item_location_last a{padding-right:15px}.main-menu-bar__item_action_change-mode{width:135px}.main-menu-bar__item_action_change-mode a{cursor:pointer;width:135px;color:#333;display:none;text-align:center;padding-left:0;padding-right:0}.main-menu-bar__item_action_change-mode a:hover{color:#000}.main-menu-bar__item_mode_2recordings .main-menu-bar__item-a_mode_2recordings{display:block;background:#31a354}.main-menu-bar__item_mode_2recordings .main-menu-bar__item-a_mode_2recordings:active{background:#83c898}.main-menu-bar__item_mode_2collections .main-menu-bar__item-a_mode_2collections{display:block;background:#3182bd}.main-menu-bar__item_mode_2collections .main-menu-bar__item-a_mode_2collections:active{background:#83b4d7}.main-menu-bar__item_action_change-mode.main-menu-bar__item_flashing{opacity:.8}.main-menu-bar__item_action_change-mode.main-menu-bar__item_flashing a{color:rgba(255,255,255,0.4)} +.main-menu{position:fixed;top:0;left:0;right:0;bottom:0;bottom:auto;font-family:'Web Open Sans',Verdana,sans-serif;font-size:14px;line-height:20px;z-index:1000}.main-menu__bar{position:absolute;top:0;left:0;right:0;height:28px;z-index:1001} +.main-region{font-family:'Web Open Sans',Verdana,sans-serif;font-size:14px;line-height:20px;position:absolute;top:28px;bottom:0;right:0;left:0;z-index:10}.main-region__config-grid{position:absolute;top:0;left:0;right:0;bottom:0;z-index:12}.main-region__flipper-container{background-color:#ccc;-webkit-box-shadow:inset 0 5px 5px 0 rgba(0,0,0,0.2);-moz-box-shadow:inset 0 5px 5px 0 rgba(0,0,0,0.2);box-shadow:inset 0 5px 5px 0 rgba(0,0,0,0.2);position:absolute;top:0;left:0;right:0;bottom:0;-webkit-perspective:900px;-moz-perspective:900px;perspective:900px;z-index:100}.main-region__flipper{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:-webkit-transform .75s;-moz-transition:-moz-transform .75s;-o-transition:-o-transform .75s;transition:-webkit-transform .75s,-moz-transform .75s,-o-transform .75s,transform .75s;-webkit-transform-origin:right center;-moz-transform-origin:right center;-ms-transform-origin:right center;-o-transform-origin:right center;transform-origin:right center;z-index:101;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;backface-visibility:hidden}.main-region__flipper_to_recording{-webkit-transform:translateX(-100%) rotateY(-180deg);-moz-transform:translateX(-100%) rotateY(-180deg);-ms-transform:translateX(-100%) rotateY(-180deg);-o-transform:translateX(-100%) rotateY(-180deg);transform:translateX(-100%) rotateY(-180deg)}.main-region__flipper .main-region__config-grid{-webkit-transition:-webkit-transform .75s;-moz-transition:-moz-transform .75s;-o-transition:-o-transform .75s;transition:-webkit-transform .75s,-moz-transform .75s,-o-transform .75s,transform .75s;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d}.main-region__flipper_animating .main-region__config-grid{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;backface-visibility:hidden}.main-region__flipper .main-region__config-grid.config-grid_type_collection{z-index:103}.main-region__flipper .main-region__config-grid.config-grid_type_recording{z-index:102;-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.ie .main-region__flipper .main-region__config-grid.config-grid_type_recording{-webkit-transform:rotateY(0);-moz-transform:rotateY(0);-ms-transform:rotateY(0);-o-transform:rotateY(0);transform:rotateY(0)}.ie .main-region__flipper_to_recording{-webkit-transform:translateX(0) rotateY(0);-moz-transform:translateX(0) rotateY(0);-ms-transform:translateX(0) rotateY(0);-o-transform:translateX(0) rotateY(0);transform:translateX(0) rotateY(0)}.ie .main-region__flipper_animating .main-region__config-grid{-webkit-transform-origin:center center;-moz-transform-origin:center center;-ms-transform-origin:center center;-o-transform-origin:center center;transform-origin:center center}.ie .main-region__flipper_to_collection .main-region__config-grid.config-grid_type_collection,.ie .main-region__flipper_to_recording .main-region__config-grid.config-grid_type_recording{-webkit-transform:perspective(900px) rotateY(0);-moz-transform:perspective(900px) rotateY(0);-ms-transform:perspective(900px) rotateY(0);-o-transform:perspective(900px) rotateY(0);transform:perspective(900px) rotateY(0)}.ie .main-region__flipper_to_collection .main-region__config-grid.config-grid_type_recording{-webkit-transform:perspective(900px) rotateY(180deg);-moz-transform:perspective(900px) rotateY(180deg);-ms-transform:perspective(900px) rotateY(180deg);-o-transform:perspective(900px) rotateY(180deg);transform:perspective(900px) rotateY(180deg)}.ie .main-region__flipper_to_recording .main-region__config-grid.config-grid_type_collection{-webkit-transform:perspective(900px) rotateY(-180deg);-moz-transform:perspective(900px) rotateY(-180deg);-ms-transform:perspective(900px) rotateY(-180deg);-o-transform:perspective(900px) rotateY(-180deg);transform:perspective(900px) rotateY(-180deg)} +.mode-changer{font-family:'Web Open Sans',Verdana,sans-serif;font-size:14px;line-height:20px;position:fixed;top:28px;bottom:0;width:30px;background:#ddd;border:1px solid #aaa}.mode-changer_type_2recordings{left:auto;right:0}.mode-changer__label{position:absolute;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)} +.notification{position:relative;padding-top:10px;cursor:default;z-index:7001}.notification__body{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;position:absolute;bottom:0;right:0;background:#eee;border:1px solid #ccc;border-top-left-radius:5px;border-bottom-left-radius:5px;width:250px;z-index:7002}.notification__closer{position:absolute;right:0;top:0;bottom:0;width:20px;background:#f5f5f5;color:#ccc;cursor:default;z-index:7003}.notification__closer::before{content:"x";display:block;margin-top:6px;text-align:center}.notification__closer:hover{color:#999;background:#fff}.notification_ttl_5 .notification__closer::before{content:"5"}.notification_ttl_4 .notification__closer::before{content:"4"}.notification_ttl_3 .notification__closer::before{content:"3"}.notification_ttl_2 .notification__closer::before{content:"2"}.notification_ttl_1 .notification__closer::before{content:"1"}.notification_ttl_0 .notification__closer::before{content:"0"}.notification_ttl-frozen:hover .notification__closer::before{content:"x" !important}.notification_type_warning .notification__body{background:#ffeed0}.notification_type_warning .notification__closer{background:#fff8f5}.notification_type_warning .notification__closer:hover{color:#CA9}.notification_type_error .notification__body{background:#ffd5d5}.notification_type_error .notification__closer{background:#fff5f5}.notification_type_error .notification__closer:hover{color:#C88}.notification__content{padding:6px 10px;margin-right:20px}.notification_no-padding .notification__content{padding:0}.notification__content b{font-weight:bold} +.notifications{position:absolute;width:0;bottom:0;top:0;right:0;z-index:7000}.notifications__stack{position:fixed;right:0;overflow:visible;bottom:80px} +.player{position:relative;height:90px}.player__body{position:absolute;top:0;left:0;right:0;bottom:0}.player__command{display:block;position:absolute;width:25px;height:25px}.player__command:focus{outline:0}.player__command i{display:block;position:absolute;width:25px;height:25px;background-repeat:no-repeat;background-position:center center;opacity:.05}.player__command_state_enabled{display:block;cursor:pointer}.player__command_state_enabled i{opacity:.35}.player__command_state_enabled:hover i{opacity:1}.player__command_flashing i,.player__command_state_enabled:active i{top:1px}.jp-state-playing .player__command_action_play{display:none}.player__command_action_pause{display:none}.jp-state-playing .player__command_action_pause{display:block}.player__command_action_play,.player__command_action_pause{top:32px;left:6px}.player__command_action_download{top:31px;left:35px}.player__command_action_play i{background-image:url("../$/bem/player/command/play.svg")}.player__command_action_pause i{background-image:url("../$/bem/player/command/pause.svg")}.player__command_action_download i{background-image:url("../$/bem/player/command/download_cloud.svg")}.player__command_action_volume-up i{background-size:50%;background-image:url("../$/bem/player/command/volume-up.svg")}.player__command_action_volume-down i{background-size:45%;background-image:url("../$/bem/player/command/volume-down.svg")}.player__command_action_volume-mute i{background-size:35%;background-image:url("../$/bem/player/command/volume-mute.svg")}.player__command_action_volume-down,.player__command_action_volume-mute,.player__command_action_volume-up{top:32px}.player__command_action_volume-down,.player__command_action_volume-mute{left:90px}.player__command_action_volume-up{right:5px}.player__label{position:absolute;font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;left:10px;right:10px;white-space:nowrap;overflow:hidden}.player__label_row_1{top:4px}.player__label_row_2{top:15px}.player__label-fader{position:absolute;top:0;right:10px;height:30px;width:10px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMSAxIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9Imxlc3NoYXQtZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9InJnYigyMzgsIDIzOCwgMjM4KSIgc3RvcC1vcGFjaXR5PSIwIi8+PHN0b3Agb2Zmc2V0PSIxNSUiIHN0b3AtY29sb3I9InJnYigyMzgsIDIzOCwgMjM4KSIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+PHN0b3Agb2Zmc2V0PSIzMCUiIHN0b3AtY29sb3I9InJnYigyMzgsIDIzOCwgMjM4KSIgc3RvcC1vcGFjaXR5PSIwLjUiLz48c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0icmdiKDIzOCwgMjM4LCAyMzgpIiBzdG9wLW9wYWNpdHk9IjAuNzUiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlZWVlZWUiIHN0b3Atb3BhY2l0eT0iMSIvPjwvbGluZWFyR3JhZGllbnQ+PHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNsZXNzaGF0LWdlbmVyYXRlZCkiIC8+PC9zdmc+);background-image:-webkit-linear-gradient(left,rgba(238,238,238,0) 0,rgba(238,238,238,0.25) 15%,rgba(238,238,238,0.5) 30%,rgba(238,238,238,0.75) 60%,#eee 100%);background-image:-moz-linear-gradient(left,rgba(238,238,238,0) 0,rgba(238,238,238,0.25) 15%,rgba(238,238,238,0.5) 30%,rgba(238,238,238,0.75) 60%,#eee 100%);background-image:-o-linear-gradient(left,rgba(238,238,238,0) 0,rgba(238,238,238,0.25) 15%,rgba(238,238,238,0.5) 30%,rgba(238,238,238,0.75) 60%,#eee 100%);background-image:linear-gradient(to right,rgba(238,238,238,0) 0,rgba(238,238,238,0.25) 15%,rgba(238,238,238,0.5) 30%,rgba(238,238,238,0.75) 60%,#eee 100%)}.player__time{position:absolute;font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;color:#909090;top:70px}.player__time_type_before{left:10px}.player__time_type_after{right:10px}.player__slider-container_type_time{position:absolute;left:10px;right:10px;top:60px;height:15px}.player__slider-container_type_volume{position:absolute;left:115px;right:35px;top:36px;height:18px}.player__slider{position:absolute;top:0;left:0;right:0;bottom:0;border-top:5px solid;border-bottom:5px solid;color:#eee;background:rgba(0,0,0,0.05)}.player__slider-head{position:absolute;top:0;left:0;right:0;bottom:0;right:auto;background:rgba(0,0,0,0.35)}.player__slider:hover{background:rgba(0,0,0,0.15)}.player__slider:hover .player__slider-head{background:#000}.player__cover{position:absolute;top:0;left:0;right:0;bottom:0}.player__message{position:absolute;top:0;left:0;right:0;bottom:0;padding-top:15px;text-align:center} +.screenshot{overflow:scroll}.screenshot body{position:relative;width:1340px;height:715px;background:#fff}.screenshot body::-webkit-scrollbar{width:0 !important;height:0 !important;display:none}.screenshot .config-grid-cells__container{overflow:hidden}.screenshot .main-menu,.screenshot .main-menu-bar{position:absolute}.screenshot .config-grid-panel_dimension_entity .config-grid-panel__background{border-bottom-right-radius:5px}.screenshot .config-grid-panel_dimension_view .config-grid-panel__background{border-radius:5px}.screenshot_debug body{outline:1px solid red}.screenshot_no-main-menu .main-menu{display:none}.screenshot_no-main-menu .main-region{top:0}.screenshot_no-main-menu .config-grid-panel_dimension_entity .config-grid-panel__background{border-radius:5px}.screenshot_no-main-menu .config-grid-panel_dimension_view .config-grid-panel__background{border-radius:5px}.screenshot_no-panel_view .config-grid__header{display:none}.screenshot_no-panel_view .config-grid-panel_dimension_view{display:none}.screenshot_no-panel_view .config-grid_type_collection{left:-270px}.screenshot_no-buttons_new .config-grid-cells__entity-header_kind_adder{display:none}.screenshot_no-buttons_new .config-grid-cells__view-header_kind_adder{display:none}.screenshot_autosize_grid .config-grid-cells__view-header-background,.screenshot_autosize .config-grid-cells__view-header-background{border-top-right-radius:5px;border-bottom-right-radius:5px}.screenshot__fake-cursor{background-image:url("../$/bem//screenshot/fake-cursor.png");background-repeat:no-repeat;position:fixed;display:block;height:30px;width:30px;z-index:7000}.screenshot_state_flip .main-region__flipper{-webkit-transition:-webkit-transform 20s;-moz-transition:-moz-transform 20s;-o-transition:-o-transform 20s;transition:-webkit-transform 20s,-moz-transform 20s,-o-transform 20s,transform 20s}.screenshot_state_flip .main-region__flipper .config-grid{-webkit-transition:-webkit-transform 20s;-moz-transition:-moz-transform 20s;-o-transition:-o-transform 20s;transition:-webkit-transform 20s,-moz-transform 20s,-o-transform 20s,transform 20s} +.tooltip{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;position:absolute;opacity:0;pointer-events:none;background:rgba(0,0,0,0.8);border-radius:5px;color:rgba(255,255,255,0.8);padding:5px;z-index:7010;white-space:nowrap}.tooltip_animation_slow-opacity{-moz-transition:opacity .5s ease-in-out;-webkit-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}.tooltip_state_visible{opacity:1} +.vis-instance__content{position:absolute;top:0;left:0;right:0;bottom:0}.vis-instance__cover{position:absolute;top:0;left:0;right:0;bottom:0;cursor:default;background:rgba(255,255,255,0.5);display:none}.vis-instance__cover_visible{display:block}.vis-instance__cover_category_error{color:red}.vis-instance__cover_category_warning{color:#dfaa7e}.vis-instance__cover_category_process{color:#909090}.vis-instance__cover_category_info{color:#909090}.config-grid_type_collection .vis-instance__cover_category_notice{color:#3182bd}.config-grid_type_recording .vis-instance__cover_category_notice{color:#31a354}.vis-instance__cover-message{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;display:block;margin:10px auto 0;padding:3px 0 5px;text-align:center;position:relative;min-width:100px;max-width:60%;background:rgba(255,255,255,0.8);-webkit-box-shadow:0 0 10px rgba(255,255,255,0.8);-moz-box-shadow:0 0 10px rgba(255,255,255,0.8);box-shadow:0 0 10px rgba(255,255,255,0.8);-webkit-border-radius:10px;-webkit-background-clip:padding-box;-moz-border-radius:10px;-moz-background-clip:padding;border-radius:10px;background-clip:padding-box} +.vic-api-debug{padding-top:5px}.vic-api-debug__query-box{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius-bottomright:5px;-moz-background-clip:padding;border-bottom-right-radius:5px;background-clip:padding-box;display:none;border:1px solid #f0f0f0;border-top:0;background:#fff}.vic-api-debug__query-box_alignment_everywhere{display:block}.vic-api-debug__query-box_alignment_left{display:block;right:50%;margin-right:3px}.vic-api-debug__query-box_alignment_right{display:block;left:50%;margin-left:3px}.vic-api-debug__query-box_alignment_top{display:block;bottom:50%;margin-bottom:3px}.vic-api-debug__query-box_alignment_bottom{-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box;border-top:1px solid #f0f0f0;display:block;top:50%;margin-top:3px}.vic-api-debug__query-uri-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;bottom:auto;height:14px;border-top:3px solid #fff;border-right:3px solid #fff;border-bottom:3px solid #fff;border-left:3px solid #fff;-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box}.vic-api-debug__query-uri{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;font-family:"Lucida Console",Monaco,monospace;font-weight:bold;position:relative;width:100%;height:100%;margin:0;border:0;padding:3px 3px;top:-3px;left:-3px;background:#fff;-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box}.vic-api-debug__query-response-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;top:20px;border-top:3px solid #fff;border-right:3px solid #fff;border-bottom:3px solid #fff;border-left:3px solid #fff;-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box}.vic-api-debug__query-response{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;font-family:"Lucida Console",Monaco,monospace;position:relative;width:100%;height:100%;margin:0;border:0;background:0;resize:none;top:-3px;left:-3px;padding:3px 3px;-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box}.vic-api-debug__query-box_status_has-errors .vic-api-debug__query-response{color:red} +.vic-list{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;padding-top:5px}.vic-list__item{position:relative;height:15px;line-height:15px;color:#000;cursor:pointer;-webkit-border-radius:5px;-webkit-background-clip:padding-box;-moz-border-radius:5px;-moz-background-clip:padding;border-radius:5px;background-clip:padding-box}.vic-list__item:hover{background:#f8f8f8}.vic-list__item_status_selected{cursor:default;background:#f0f0f0 !important}.vic-list__item-label{position:absolute;left:8px;right:70px;height:15px;overflow:hidden;white-space:nowrap}.vic-list__item-year{position:absolute;top:0;right:8px}.vic-list__item-command{pointer-events:none;display:block;position:absolute;height:15px;width:15px;top:0}.vic-list__item-command i{position:absolute;top:0;left:0;right:0;bottom:0}.vic-list__item_status_selected .vic-list__item-command{cursor:pointer}.vic-list__item_status_selected .vic-list__item-command:active{top:1px}.vic-list__item-command_action_audio{right:35px;opacity:.2}.vic-list__item_status_selected .vic-list__item-command_action_audio{opacity:.5;pointer-events:all}.vic-list__item_status_selected .vic-list__item-command_action_audio:hover{opacity:1}.vic-list__item-command_action_audio i{background-size:15px;background-position:center center;background-image:url("../$/bem/vis-instance-content/vic-list/item-command_action_play_note_2.svg")}.vic-list__item-command_action_analyze{right:50px}.vic-list__item-command_action_analyze{display:none}.vic-list__item-command_action_analyze i{border:1px solid #31a354;height:7px;width:7px;-webkit-border-radius:7px;-webkit-background-clip:padding-box;-moz-border-radius:7px;-moz-background-clip:padding;border-radius:7px;background-clip:padding-box}.vic-list__item-command_action_analyze.vic-list__item-command_status_toggled{display:block}.vic-list__item-command_action_analyze.vic-list__item-command_status_toggled i{background:#31a354;border:1px solid #31a354;height:1px;width:1px;top:6px;left:6px}.vic-list__item_status_selected .vic-list__item-command_action_analyze{pointer-events:all;display:block;opacity:1}.vic-list__item_status_selected .vic-list__item-command_action_analyze i{border:1px solid #31a354;height:7px;width:7px;top:3px;left:3px}.vic-list__item_status_selected .vic-list__item-command_action_analyze:hover i{background:rgba(49,163,84,0.3)}.vic-list__item_status_selected .vic-list__item-command_status_toggled.vic-list__item-command_action_analyze:hover i{background:rgba(49,163,84,0.7)}.vic-list__flying-circle{position:fixed;height:7px;width:7px;border:1px solid #31a354;background:rgba(49,163,84,0.5);z-index:99;-webkit-border-radius:7px;-webkit-background-clip:padding-box;-moz-border-radius:7px;-moz-background-clip:padding;border-radius:7px;background-clip:padding-box;pointer-events:none}.vic-list__circle-within-text{display:inline-block;height:7px;width:7px;border:1px solid #31a354;-webkit-border-radius:7px;-webkit-background-clip:padding-box;-moz-border-radius:7px;-moz-background-clip:padding;border-radius:7px;background-clip:padding-box} +.vic-properties{padding-top:5px}.vic-properties__property{font-family:'Web Open Sans',Verdana,sans-serif;font-size:10px;line-height:13px;display:block;position:relative;height:15px;line-height:15px;overflow:visible}.vic-properties__property_type_temp{opacity:.3}.vic-properties__property-caption{position:absolute;top:0;height:15px;color:#999;left:8px}.vic-properties__property-value{position:absolute;top:0;left:80px;right:8px;white-space:nowrap;color:#000}.vic-properties__property_type_before-divider .vic-properties__property-value{height:30px;white-space:normal;overflow:hidden}.vic-properties__property-divider{height:15px} +.vic-vega{text-align:center}.vic-vega svg{margin:0 auto} \ No newline at end of file diff -r 000000000000 -r 493bcb69166c $/app.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/$/app.js Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,109 @@ +/*! + * DML Main Vis + * http://dml.city.ac.uk/ + */ + +(function($){$.eventsugar={isAttemptToOpenInAnotherWindow:function(event){return 2===event.which||event.metaKey||event.ctrlKey||event.shiftKey}}})(jQuery); +(function($){$.widget("custom.combobox",{_create:function(){this.wrapper=$("").addClass("custom-combobox").insertAfter(this.element);this.element.hide();this._createAutocomplete();this._createShowAllButton()},_createAutocomplete:function(){var selected=this.element.children(":selected"),value=selected.val()?selected.text():"";this.input=$("").appendTo(this.wrapper).val(value).attr("title","").addClass("custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left").autocomplete({delay:0,minLength:0,source:$.proxy(this,"_source")});this._on(this.input,{autocompleteselect:function(event,ui){ui.item.option.selected=true;this._trigger("select",event,{item:ui.item.option})},autocompletechange:"_applyChange"})},_createShowAllButton:function(){var input=this.input,wasOpen=false;$("").attr("tabIndex",-1).attr("title","Show All Items").tooltip().appendTo(this.wrapper).button({icons:{primary:"ui-icon-triangle-1-s"},text:false}).removeClass("ui-corner-all").addClass("custom-combobox-toggle ui-corner-right").mousedown(function(){wasOpen=input.autocomplete("widget").is(":visible")}).click(function(){input.focus();if(wasOpen){return}input.autocomplete("search","")})},_source:function(request,response){var matcher=new RegExp($.ui.autocomplete.escapeRegex(request.term),"i");response(this.element.children("option").map(function(){var text=$(this).text();if(this.value&&(!request.term||matcher.test(text)))return{label:text,value:text,option:this}}))},_applyChange:function(event,ui){if(ui.item){return}var value=this.input.val(),valueLowerCase=value.toLowerCase(),valid=false;this.element.children("option").each(function(){if($(this).text().toLowerCase()===valueLowerCase){this.selected=valid=true;return false}});this.element.val(value);if(valid){return}},_destroy:function(){this.wrapper.remove();this.element.show()}})})(jQuery); +var toString=Object.prototype.toString;if(_){_.mixin({isEventAnAttemptToOpenANewTab:function(event){return event.ctrlKey||event.shiftKey||event.metaKey||event.which==2}})}else{console.error("Can't register _.isClickAnAttemptToOpenANewTab without underscore.js (global variable '_')")} +var toString=Object.prototype.toString;if(_){_.mixin({isSimpleObject:function(obj){return toString.call(obj)==="[object Object]"&&obj.constructor===Object}})}else{console.error("Can't register _.isSimpleObject without underscore.js (global variable '_')")} +var toString=Object.prototype.toString;if(_){var idCounter=0;var alreadyUsedUniqueIds={};_.mixin({uniqueId:function(prefix){while(true){var id=++idCounter+"";var uniqueId=prefix?prefix+id:id;if(!alreadyUsedUniqueIds[uniqueId]){return uniqueId}}},markUniqueIdAsAlreadyUsed:function(uniqueId){alreadyUsedUniqueIds[uniqueId]=true}})}else{console.error("Can't register _.uniqueId and _.markUniqueIdAsAlreadyUsed without underscore.js (global variable '_')")} +if(vg&&false){vg.parse.expr.codegen.functions["myFunction"]=function(args){var a=args.map(vg.parse.expr.codegen);return"window.myFunction("+a[0]+")"}}else{} +(function(){if(vg){var Transform=vg.transforms.bin.prototype.__proto__.constructor;function Centroid(graph){Transform.prototype.init.call(this,graph);Transform.addParameters(this,{field:{type:"field"}});this._output={centroid_x:"centroid_x",centroid_y:"centroid_y"};return this.mutates(true)}var prototype=Centroid.prototype=Object.create(Transform.prototype);prototype.constructor=Centroid;prototype.transform=function(input){var output_x=this._output.centroid_x,output_y=this._output.centroid_y,get=this.param("path").accessor;var svg=d3.select("body").append("svg").attr("width",400).attr("height",400);var p=svg.append("path");function update(d){p.attr("d",d["layout_path"]);var bbox=p.node().getBBox();var x=Math.floor(bbox.x+bbox.width/2);var y=Math.floor(bbox.y+bbox.height/2);vg.dataflow.Tuple.set(d,output_x,x);vg.dataflow.Tuple.set(d,output_y,y)}input.add.forEach(update);input.mod.forEach(update);input.rem.forEach(update);input.fields[output_x]=0;input.fields[output_y]=0;return input};Centroid.schema={$schema:"http://json-schema.org/draft-04/schema#",title:"Bin transform",description:"Bins values into quantitative bins (e.g., for a histogram).",type:"object",properties:{type:{"enum":["bin"]},field:{oneOf:[{type:"string"},{$ref:"#/refs/signal"}],description:"The name of the field to calculate centroids from values from."},output:{type:"object",description:"Rename the output data fields",properties:{bin:{type:"string","default":"bin"}},additionalProperties:false}},additionalProperties:false,required:["field"]};vg.transforms.centroid=Centroid;console.log(vg)}else{}})(); +"use strict";var App=new Backbone.Marionette.Application; +"use strict";App.addInitializer(function(options){Logger.setLevel(Logger.WARN);App.logger=Logger.get("App");App.logger.setLevel(Logger.DEBUG);var previousLogTime=null;Logger.setHandler(function(originalArguments,context){var hdlr=console.log;var messages=Array.prototype.slice.call(originalArguments);if(context.name){messages.unshift(_.str.pad(_.str.sprintf("[%s]",context.name),25," ","right"))}var logDate=new Date;var logTime=logDate.getTime();if(previousLogTime&&logTime-previousLogTime<3e3){messages.unshift(_.str.sprintf(" %4d",logTime-previousLogTime))}else{messages.unshift(" ")}messages.unshift(_.str.sprintf("%s.%03d",logDate.toTimeString().slice(0,8),logTime%1e3));previousLogTime=logTime;if(context.level===Logger.WARN&&console.warn){hdlr=console.warn}else if(context.level===Logger.ERROR&&console.error){hdlr=console.error}else if(context.level===Logger.INFO&&console.info){hdlr=console.info}Function.prototype.apply.call(hdlr,console,messages)});if(!options.enableJasmine){window.onerror=function(message,file,line){App.logger.error("[unhandled]",message,file,line)}}}); +"use strict";App.addInitializer(function(options){App.generateAssetURL=function(relativeAssetURL){return _.str.sprintf("$/%s",relativeAssetURL)}}); +"use strict";App.addInitializer(function(options){if(window.location.href.indexOf("reset")>0){localStorage.clear();console.log("reset")}if(navigator.appVersion.indexOf("Mac")>0){App.keyboardMappings={ctrl:"meta",ctrlTitle:"cmd",ctrlShift:"shift+meta",ctrlShiftTitle:"cmd+shift"}}else{App.keyboardMappings={ctrl:"ctrl",ctrlTitle:"ctrl",ctrlShift:"ctrl+shift",ctrlShiftTitle:"ctrl+shift"}}App.DataModule.start();App.options.debugAPI=!!App.DataModule.Storage.getStrCache(null,"debug-api");App.options.defaultEntityWidth=400;App.DataModule.CliopatriaAPI.start({apiRootPaths:options.musicLibrary.apiRootPaths,apiVersion:options.musicLibrary.apiVersion,dataVersion:options.musicLibrary.dataVersion,dataCaching:options.musicLibrary.dataCaching});App.NotificationsModule.start();App.ContextModule.start();App.RepresentationModule.start();App.MainRegionModule.start();App.TooltipModule.start();App.HelpModule.start();App.contextManager=new App.ContextModule.AppContextManager;App.context=new App.ContextModule.AppContext;try{App.contextManager.restoreFromStorage(App.context,"")}catch(e){App.contextManager.restoreDefault("")}App.dynamicDefinitionProviderForCollections=new App.DataModule.DynamicDefinitionProviderForCollections;App.dynamicDefinitionProviderForRecordings=new App.DataModule.DymanicDefinitionProviderForRecordings;App.dynamicDerivedConfigDataProvider=new App.RepresentationModule.DynanicDerivedConfigDataProvider({configGridsByType:{collection:App.context.get("state").get("musicCollectionGrid"),recording:App.context.get("state").get("musicRecordingGrid")}});App.PlayerModule.start();var saveContextToStorage=function(){App.contextManager.saveToStorage(App.context)};var throttledSaveAppContextToStorage=_.throttle(saveContextToStorage,1e4,{leading:false});App.context.bind("change",throttledSaveAppContextToStorage);$(window).on("beforeunload",saveContextToStorage);App.mainRegionView=new App.MainRegionModule.MainRegionView({state:App.context.get("state"),el:".app__main-region"});App.MainMenuModule.start();App.TooltipModule.convertTitlesToTooltips($("body"))}); +"use strict";App.addInitializer(function(options){App.showHelp=function(options){App.HelpModule.show(options);App.MainMenuModule.flashItem("help")};App.hideHelp=function(options){App.HelpModule.hide(options)};App.helpIsShowing=function(){return App.HelpModule.isShowing()};App.showNotification=function(options){App.NotificationsModule.show(options)};App.hideNotification=function(id){return App.NotificationsModule.hide(id)};var stateHistory=App.context.get("stateHistory");App.undo=function(){if(stateHistory.canUndo()){stateHistory.undo();App.hideNotification("undo_redo")}else{App.showNotification({id:"undo_redo",content:Backbone.Marionette.TemplateCache.get("#notification-content_undo_na")})}App.MainMenuModule.flashItem("undo")};App.redo=function(){if(stateHistory.canRedo()){stateHistory.redo();App.hideNotification("undo_redo")}else{App.showNotification({id:"undo_redo",content:Backbone.Marionette.TemplateCache.get("#notification-content_redo_na")})}App.MainMenuModule.flashItem("redo")};stateHistory.on("change",function(){App.hideNotification("undo_redo")});App.showStateSharing=function(){App.showNotification({id:"states",modifiers:["ttl_20"],content:Backbone.Marionette.TemplateCache.get("#notification-content_states_na")});App.MainMenuModule.flashItem("share")},App.showStateBookmarks=function(){App.showNotification({id:"states",modifiers:["ttl_20"],content:Backbone.Marionette.TemplateCache.get("#notification-content_states_na")});App.MainMenuModule.flashItem("bookmarks")},App.play=function(recordingURI,time){App.PlayerModule.play(recordingURI,time)}}); +"use strict";App.addInitializer(function(options){var _this=this;var $document=$(document);var aPopupIsOpen=function(){return App.helpIsShowing()};var askToClosePopups=function(){};$document.bind("keydown","esc",function(event){if(App.helpIsShowing()){App.hideHelp()}});$document.bind("keydown","h",function(event){if(App.helpIsShowing()){App.hideHelp()}else{App.showHelp()}});$document.bind("keydown","f",function(event){if(aPopupIsOpen()){return false}var state=App.context.get("state");state.set("musicRecordingsGridIsShown",!state.get("musicRecordingsGridIsShown"))});$document.bind("keydown",App.keyboardMappings.ctrl+"+z",function(event){if(aPopupIsOpen()){askToClosePopups();return false}App.undo()});$document.bind("keydown",App.keyboardMappings.ctrlShift+"+z",function(event){if(aPopupIsOpen()){askToClosePopups();return false}App.redo()});var moveConfig=function(dimension,offset){var state=App.context.get("state");var configGrid=state.get(state.get("musicRecordingsGridIsShown")?"musicRecordingGrid":"musicCollectionGrid");var configs=null;if(dimension=="entity"){configs=configGrid.get("entityConfigs");var selectedConfig=configGrid.getSelectedEntityConfig();if(selectedConfig){var configToInsertBefore;if(offset==1){configToInsertBefore=configGrid.getNextEntityNeighbour(selectedConfig);if(configToInsertBefore){configToInsertBefore=configGrid.getNextEntityNeighbour(configToInsertBefore)}}else{configToInsertBefore=configGrid.getPrevEntityNeighbour(selectedConfig);if(!configToInsertBefore){return}}configGrid.relocateEntityConfig(selectedConfig,configToInsertBefore?configToInsertBefore:null)}}else{configs=configGrid.get("viewConfigs");var selectedConfig=configGrid.getSelectedViewConfig();if(selectedConfig){var configToInsertBefore;if(offset==1){configToInsertBefore=configGrid.getNextViewNeighbour(selectedConfig);if(configToInsertBefore){configToInsertBefore=configGrid.getNextViewNeighbour(configToInsertBefore)}}else{configToInsertBefore=configGrid.getPrevViewNeighbour(selectedConfig);if(!configToInsertBefore){return}}configGrid.relocateViewConfig(selectedConfig,configToInsertBefore?configToInsertBefore:null)}}};$document.bind("keydown","alt+left",function(event){if(aPopupIsOpen()){askToClosePopups();return false}moveConfig("entity",-1);event.preventDefault();return false});$document.bind("keydown","alt+right",function(event){if(aPopupIsOpen()){askToClosePopups();return false}moveConfig("entity",1);event.preventDefault();return false});$document.bind("keydown","alt+up",function(event){if(aPopupIsOpen()){askToClosePopups();return false}moveConfig("view",-1);event.preventDefault();return false});$document.bind("keydown","alt+down",function(event){if(aPopupIsOpen()){askToClosePopups();return false}moveConfig("view",1);event.preventDefault();return false})}); +"use strict";App.addInitializer(function(options){var _this=this;var popupsAreInstant=true;var appRouter=new(Backbone.Router.extend({routes:{help:"navigateToHelp","help/:id":"navigateToHelp","":"navigateToDefault","*notFound":"notFound"},navigateToHelp:function(id){App.HelpModule.show({materialId:id!==null?id:"",instant:popupsAreInstant})},navigateToDefault:function(id){App.HelpModule.hide()},notFound:function(context){App.logger.warn("Route not found",context)}}));App.HelpModule.on("show",function(options){var urlHash="help";if(options.materialId){urlHash+="/"+options.materialId}var needToReplace=Backbone.history.fragment.slice(0,4)=="help";appRouter.navigate(urlHash,{replace:needToReplace})});App.HelpModule.on("hide",function(options){appRouter.navigate("/")});Backbone.history.start({});popupsAreInstant:false}); +"use strict";App.addInitializer(function(options){var $document=$(document);var cid=0;var uniqueClientId=function(){return"custom"+cid++};var nextUniqueClientId=function(){return"custom"+cid};$document.bind("keydown","shift+0",function(event){App.context.get("state").unserialize(App.contextManager.defaultSerializedAppContexts[""].stateHistory.currentSerializedState)});var sharedMusicRecordingConfig={viewConfigs:[{clientId:"def4",parameters:{kind:"properties"}},{clientId:"def5",parameters:{kind:"midi-pitch-histogram"}}]};$document.bind("keydown","shift+1",function(event){App.context.get("state").unserialize({musicCollectionGrid:{selectedEntityConfigClientId:nextUniqueClientId(),entityConfigs:[{clientId:uniqueClientId(),parameters:{library:"bl",composer:"Haydn",performer:"Karajan",year:"1959",title:"Symphonies;104"}}],viewConfigs:[{clientId:uniqueClientId(),parameters:{kind:"list"}},{clientId:uniqueClientId(),parameters:{kind:"tuning-stats"}}]},musicRecordingGrid:sharedMusicRecordingConfig})});$document.bind("keydown","shift+2",function(event){App.context.get("state").unserialize({musicCollectionGrid:{selectedEntityConfigClientId:nextUniqueClientId(),entityConfigs:[{clientId:uniqueClientId(),parameters:{library:"bl;charm",composer:"Haydn",title:"Symphony"}}],viewConfigs:[{clientId:uniqueClientId(),parameters:{kind:"list"}},{clientId:uniqueClientId(),parameters:{kind:"tuning-stats"}}]},musicRecordingGrid:sharedMusicRecordingConfig})});$document.bind("keydown","shift+3",function(event){App.context.get("state").unserialize({musicCollectionGrid:{selectedEntityConfigClientId:nextUniqueClientId(),entityConfigs:[{clientId:uniqueClientId(),parameters:{library:"bl;charm",year:"1940-1979",title:"Symphony"}},{clientId:uniqueClientId(),parameters:{kind:"pair",comparisonMode:"superposition"}},{clientId:uniqueClientId(),parameters:{library:"bl;charm",year:"1980-2010",title:"Symphony"}}],viewConfigs:[{clientId:uniqueClientId(),parameters:{kind:"list"}},{clientId:uniqueClientId(),parameters:{kind:"tuning-stats"}}]},musicRecordingGrid:sharedMusicRecordingConfig})});$document.bind("keydown","shift+4",function(event){App.context.get("state").unserialize({musicCollectionGrid:{selectedEntityConfigClientId:nextUniqueClientId(),entityConfigs:[{clientId:uniqueClientId(),parameters:{library:"bl;charm",composer:"Schoenberg"}}],viewConfigs:[{clientId:uniqueClientId(),parameters:{kind:"midi-pitch-histogram"}}]},musicRecordingGrid:sharedMusicRecordingConfig})});$document.bind("keydown","shift+5",function(event){App.context.get("state").unserialize({musicCollectionGrid:{selectedEntityConfigClientId:nextUniqueClientId(),entityConfigs:[{clientId:uniqueClientId(),parameters:{library:"bl",collection:"dinka"}}],viewConfigs:[{clientId:uniqueClientId(),parameters:{kind:"list"}},{clientId:uniqueClientId(),parameters:{kind:"pitch-histogram"}},{clientId:uniqueClientId(),parameters:{kind:"midi-pitch-histogram"}}]},musicRecordingGrid:sharedMusicRecordingConfig})});$document.bind("keydown","shift+6",function(event){App.context.get("state").unserialize({musicCollectionGrid:{selectedEntityConfigClientId:nextUniqueClientId(),entityConfigs:[{clientId:uniqueClientId(),parameters:{library:"bl;charm",composer:"Chopin",title:"Mazurka;Op.68;no.2"}}],viewConfigs:[{clientId:uniqueClientId(),parameters:{kind:"list"}},{clientId:uniqueClientId(),parameters:{kind:"mean-tempo-curve"}}]},musicRecordingGrid:sharedMusicRecordingConfig})});$document.bind("keydown","shift+7",function(event){App.context.get("state").unserialize({musicCollectionGrid:{selectedEntityConfigClientId:nextUniqueClientId(),entityConfigs:[{clientId:uniqueClientId(),parameters:{library:"bl;charm",composer:"Chopin",title:"Mazurka;Op.68;no.2"}},{clientId:uniqueClientId(),parameters:{library:"bl;charm",composer:"Chopin"}}],viewConfigs:[{clientId:uniqueClientId(),parameters:{kind:"list"}},{clientId:uniqueClientId(),parameters:{kind:"mean-tempo-curve"}}]},musicRecordingGrid:sharedMusicRecordingConfig})})}); +"use strict";App.addInitializer(function(options){var _this=this;if(!_.isUndefined(options.enableJasmine)){var $document=$(document);if(!options.enableJasmine){$document.bind("keydown","j",function(event){var url=location.protocol+"//"+location.host+location.pathname;if(url.indexOf("?")>-1){url+="&jasmine"}else{url+="?jasmine"}window.location.href=url})}else{executeJasmine();$document.bind("keydown","shift+j",function(event){var url=location.protocol+"//"+location.host+location.pathname;_.each(["jasmine","catch"],function(variable){url=url.replace(new RegExp("\\?"+variable+"[=]?[a-zA-Z%0-9]*&","g"),"?").replace(new RegExp("\\?"+variable+"[=]?[a-zA-Z%0-9]*$","g"),"").replace(new RegExp("\\&"+variable+"[=]?[a-zA-Z%0-9]*&","g"),"&").replace(new RegExp("\\&"+variable+"[=]?[a-zA-Z%0-9]*$","g"),"")});url=url.replace(/\?+/,"?").replace(/\?$/,"");window.location.href=url})}}}); +"use strict";App.addInitializer(function(options){var $document=$(document);if(window.location.href.indexOf("track_assets_version")>0){var cssHref=$("link[rel=stylesheet]").attr("href");var assetsVersion=cssHref.slice(cssHref.indexOf("?")+1);var $cssUpdateIndicator=$.bem.generateElement("app","assets-version-indicator");$cssUpdateIndicator.text("assets version: "+assetsVersion);$cssUpdateIndicator.appendTo($(".app"));$cssUpdateIndicator.click(function(){App.showNotification({id:"assets-version-indicator",content:"This element changes colour when the css file recomplies."})})}var codeVersion="2015-03-12";var latestChange="Comparison views and also three new views for collections were added (tuning stats, tonic histogram and pitch class histogram). All three demo states now have the same sets of rows.";var previouslyOpenedCodeVersion=App.DataModule.Storage.getStrCache(null,"code-version");if(codeVersion!=previouslyOpenedCodeVersion){App.DataModule.Storage.setStrCache(null,"introductory-hint-was-read",undefined);App.DataModule.Storage.setStrCache(null,"code-version",codeVersion)}if(previouslyOpenedCodeVersion<"2015-03-12"){App.contextManager.restoreDefault(App.context,"empty")}if(window.location.href.indexOf("scroll")>0){$("body").addClass("scrollable-pres-in-vis-instances")}var latestVisit=App.DataModule.Storage.getStrCache(null,"latest-visit");if(!latestVisit){setTimeout(function(){if(!App.helpIsShowing()){App.MainMenuModule.flashItem("help",20)}},5e3)}App.DataModule.Storage.setStrCache(null,"latest-visit",(new Date).toString());var defaultURIIdentifier=options.musicLibrary.defaultApiRootPaths[0];if(options.musicLibrary.apiRootPaths[0].indexOf(defaultURIIdentifier)==-1){var currentURIIdentifier=options.musicLibrary.apiRootPaths[0].replace(/^[a-zA-Z]*:?\/\//,"").replace(/\/$/,"");setTimeout(function(){App.showNotification({content:Backbone.Marionette.TemplateCache.get("#notification-content_alternative-api")({defaultURIIdentifier:defaultURIIdentifier,currentURIIdentifier:currentURIIdentifier,stuffToRemoveFromAddess:"api2"}),modifiers:["ttl_30","type_warning"]})},1e3)}var debugAPIShortcut=App.keyboardMappings.ctrlShift+"+8";var debugAPIShortcutTitle=App.keyboardMappings.ctrlShiftTitle+"+8";var debugAPIMessageVersion=1;var showDebugAPIModeNotificationIfNeeded=function(){if(App.options.debugAPI&&App.DataModule.Storage.getStrCache(null,"debug-api-message-shown")!=debugAPIMessageVersion){App.showNotification({id:"debug-api",content:Backbone.Marionette.TemplateCache.get("#notification-content_debug-api")({debugAPIShortcut:debugAPIShortcutTitle}),onClose:function(){App.DataModule.Storage.setStrCache(null,"debug-api-message-shown",debugAPIMessageVersion?"1":0)},modifiers:["ttl_ever","type_warning"]})}};$document.bind("keydown",debugAPIShortcut,function(event){App.options.debugAPI=!App.options.debugAPI;if(!App.options.debugAPI){App.hideNotification("debug-api")}showDebugAPIModeNotificationIfNeeded();App.mainRegionView.render(true);App.DataModule.Storage.setStrCache(null,"debug-api",App.options.debugAPI?"1":"")});showDebugAPIModeNotificationIfNeeded();var minWidth=100;var step=20;var maxWidth=2e3;var changeEntityWidth=function(direction){var currentGrid=App.context.get("state").getConfigGridBeingShown();var currentEntityWidth=(currentGrid.get("entityWidth")||App.options.defaultEntityWidth)*1;var diff=direction>0?step:-step;var newEntityWidth=currentEntityWidth+diff;if(newEntityWidth>maxWidth){newEntityWidth=maxWidth}if(newEntityWidth=2&&frame<=5){App.context.get("state").set("musicRecordingsGridIsShown",true);setTimeout(function(){allDone()},frame*50)}return}allDone()}},5e3);var allDone=function(){window.status="screenshot_ready";console.log("screenshot is ready");clearInterval(intervalId)};if(screenshotTypes["state_interface"]){App.context.get("state").unserialize(JSON.parse('{"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"bl","composer":"Mozart","year":"","performer":"","title":"Symphony; 41","collection":"","place":""},"plannedParameterUpdates":{}},{"clientId":"cf544","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf562","parameters":{"library":"bl","title":"Symphony; 40","year":"","composer":"Mozart","performer":"","place":"","collection":""},"plannedParameterUpdates":{"year":"1970-1979","title":"Sonata"}},{"clientId":"cf170","parameters":{"library":"charm","title":"","year":"","composer":"Mozart","performer":"","recordingURI":"http://dml.org/charm/2378"},"plannedParameterUpdates":{}},{"clientId":"cf224","parameters":{},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom17","parameters":{"kind":"list","limit":"10","offset":"6","sortBy":"label"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tonic-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf780","parameters":{"kind":"key-relative-chord-seq","sequenceCount":"50","sequenceRepresentation":"parallel-coordinates","chordGrouppingIsByType":"1","guidesAreVisible":"1","recordingsInMajorModeAreIncluded":"1","recordingsInMinorModeAreIncluded":"1","chordTypesArePopularOnly":"","chordSequencesWithCyclesAreIncluded":"1","nIsIncluded":"","sequenceStepCount":"5"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf562","selectedViewConfigClientId":"cf780","entityWidth":260},"musicRecordingGrid":{"entityConfigs":[{"clientId":"cf204","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0181227XX-0200V0"},"plannedParameterUpdates":{}},{"clientId":"cf209","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163217XX-0100V0"},"plannedParameterUpdates":{}},{"clientId":"cf214","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1CL0046563XX-0100V0"},"plannedParameterUpdates":{}},{"clientId":"cf219","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163226XX-0100V0"},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"def4","parameters":{"kind":"properties"},"plannedParameterUpdates":{}},{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}}]}}'));App.play("http://dml.org/charm/2378");var $fakeMouse=$.bem.generateElement("screenshot","fake-cursor");$fakeMouse.css({left:335,top:430});$("body").append($fakeMouse);$fakeMouse.on("mouseover",function(event){console.log("here",arguments,$fakeMouse);event.pageX=335;event.pageY=430;App.TooltipModule.update(event,"C# → 15",$fakeMouse)});$fakeMouse.trigger("mouseover")}var teaserEntityWidth=200;if(screenshotTypes["state_teaser"]){App.context.get("state").unserialize(JSON.parse('{"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"uganda","place":""},"plannedParameterUpdates":{}},{"clientId":"cf544","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf1681","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"dinka","place":""},"plannedParameterUpdates":{}},{"clientId":"cf660","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf602","parameters":{"kind":"pair","comparisonMode":"direct"},"plannedParameterUpdates":{}},{"clientId":"cf718","parameters":{"library":"bl","composer":"schoenberg","year":"","performer":"","title":"","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf480","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"symphony","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf418","parameters":{"library":"bl","title":"piano","year":"","composer":"","performer":"","place":"","collection":""},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom17","parameters":{"kind":"pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"custom18","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tuning-stats","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf780","parameters":{"kind":"pitch-class-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf481","parameters":{"kind":"tempo-histogram","tempoMin":"30","tempoMax":"300","tempoNumBins":"50","tempoPeriod":"1","widthToHeightRatio":"2"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf1647","entityWidth":200},"musicRecordingGrid":{"entityConfigs":[],"viewConfigs":[{"clientId":"def4","parameters":{"kind":"properties"},"plannedParameterUpdates":{}},{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}}]}}'))}if(screenshotTypes["state_teaser-wo-piano"]){App.context.get("state").unserialize(JSON.parse('{"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"uganda","place":""},"plannedParameterUpdates":{}},{"clientId":"cf544","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf1681","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"","collection":"dinka","place":""},"plannedParameterUpdates":{}},{"clientId":"cf660","parameters":{"kind":"pair","comparisonMode":"superposition"},"plannedParameterUpdates":{}},{"clientId":"cf602","parameters":{"kind":"pair","comparisonMode":"direct"},"plannedParameterUpdates":{}},{"clientId":"cf718","parameters":{"library":"bl","composer":"schoenberg","year":"","performer":"","title":"","place":"","collection":""},"plannedParameterUpdates":{}},{"clientId":"cf480","parameters":{"library":"bl","composer":"","year":"","performer":"","title":"symphony","place":"","collection":""},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom16","parameters":{"kind":"list"},"plannedParameterUpdates":{}},{"clientId":"custom17","parameters":{"kind":"pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"custom18","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tuning-stats","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf1872","parameters":{"kind":"mean-tempo-curve","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf780","parameters":{"kind":"pitch-class-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf481","parameters":{"kind":"tempo-histogram","tempoMin":"30","tempoMax":"300","tempoNumBins":"50","tempoPeriod":"1","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf1961","parameters":{"kind":"tonic-histogram","widthToHeightRatio":"2"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf1647","selectedViewConfigClientId":"","entityWidth":'+teaserEntityWidth+'},"musicRecordingGrid":{"entityConfigs":[],"viewConfigs":[{"clientId":"def4","parameters":{"kind":"properties"},"plannedParameterUpdates":{}},{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}}]}}'))}if(screenshotTypes["state_flip"]){var musicRecordingsGridIsShown=screenshotTypes["frame_6"]?true:false;App.context.get("state").unserialize(JSON.parse('{"musicRecordingsGridIsShown":'+musicRecordingsGridIsShown+',"musicCollectionGrid":{"entityConfigs":[{"clientId":"cf1647","parameters":{"library":"charm","composer":"Mozart","year":"","performer":"","title":""},"plannedParameterUpdates":{}},{"clientId":"cf562","parameters":{"library":"charm","title":"","year":"","composer":"Haydn","performer":""},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"custom17","parameters":{"kind":"list","limit":"10","offset":"6","sortBy":"label"},"plannedParameterUpdates":{}},{"clientId":"cf1783","parameters":{"kind":"tempo-histogram","widthToHeightRatio":"2","tempoMin":"30","tempoMax":"300","tempoNumBins":"50","tempoPeriod":"1"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf1647","selectedViewConfigClientId":"cf1783","entityWidth":260},"musicRecordingGrid":{"entityConfigs":[{"clientId":"cf209","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163217XX-0100V0"},"plannedParameterUpdates":{}},{"clientId":"cf471","parameters":{"kind":"pair","comparisonMode":"direct"},"plannedParameterUpdates":{}},{"clientId":"cf219","parameters":{"recordingURI":"http://sounds.bl.uk/resource/026M-1LP0163226XX-0100V0"},"plannedParameterUpdates":{}}],"viewConfigs":[{"clientId":"def5","parameters":{"kind":"midi-pitch-histogram"},"plannedParameterUpdates":{}},{"clientId":"cf397","parameters":{"kind":"tempo-nonuniform","widthToHeightRatio":"2"},"plannedParameterUpdates":{}},{"clientId":"cf494","parameters":{"kind":"tempo-normalised","widthToHeightRatio":"2"},"plannedParameterUpdates":{}}],"selectedEntityConfigClientId":"cf471","selectedViewConfigClientId":"cf494","entityWidth":220}}'))}var resizeIfNeededAfterADelay=function(){setInterval(function(){if(screenshotTypes["autosize_grid"]||screenshotTypes["autosize"]){var $configGrid=$(".config-grid:visible");var $cellsSpace=$configGrid.find(".config-grid-cells__space");var maxX=0;var maxY=0;var $visInstances=$cellsSpace.find(".config-grid-cells__vis-instance");if(!$visInstances.length){resizeIfNeededAfterADelay();return}$visInstances.each(function(){var $visInstance=$(this);var position=$visInstance.position();var currentMaxX=position.left+$visInstance.width();var currentMaxY=position.top+$visInstance.height();if(currentMaxX>maxX){maxX=currentMaxX}if(currentMaxY>maxY){maxY=currentMaxY}});$cellsSpace.css({"padding-right":0,"padding-bottom":0,width:maxX,height:maxY,overflow:"visible"});if(screenshotTypes["autosize"]){var $body=$("body");$body.width($cellsSpace.offset().left+$cellsSpace.outerWidth());$body.height($cellsSpace.offset().top+$cellsSpace.outerHeight())}}},100)};resizeIfNeededAfterADelay();$(window).resize(resizeIfNeededAfterADelay)}); +"use strict";App.module("HelpModule",function(HelpModule,App,Backbone,Marionette,$,_,Logger){HelpModule.startWithParent=false;var defaultModuleOptions={contentScrollDuration:200,resizeThrottleDuration:200,resizeDebounceDuration:200,scrollThrottleDuration:200,scrollDebounceDuration:200};var moduleOptions;var logger=null;var $help=null;var $helpBody=null;var $helpCloser=null;var $helpContentContainer=null;var $helpContent=null;var $helpContentHeaders=null;var $helpTocContainer=null;var $helpToc=null;var contentScrollSavedPosition=null;var resizing=false;var scrolling=false;var scrollingTo=null;var lastShownMaterialId=null;var pendingMaterialId=null;var $lastContentHeader=null;var assertModuleIsInitialized=function(){if(!$help){throw"HelpModule has not been initialized"}};var updateContentBottomMargin=null;var updateContentScrollSavedPosition=null;var restoreContentScrollSavedPosition=null;var updateTocCurrentItem=null;HelpModule.addInitializer(function(options){moduleOptions=_.extend(defaultModuleOptions,options);logger=Logger.get("HelpModule");updateContentBottomMargin=function(makeBigAndLockScroll){if(makeBigAndLockScroll){$helpContentContainer.css("overflow","hidden");$helpContent.css("border-bottom-width",1e4)}else{$helpContentContainer.css("overflow","scroll");$helpContent.css("border-bottom-width",Math.max(0,$helpContentContainer.outerHeight()-$helpContent.height()+$lastContentHeader.position().top-parseInt($helpContent.css("padding-bottom"),10)+parseInt($lastContentHeader.css("margin-top"),10)))}};updateContentScrollSavedPosition=function(){var scrollTop=$helpContentContainer.scrollTop();var $candidateHeader=$helpContentHeaders.first();for(var i=0;i<=$helpContentHeaders.length;i++){var $helpContentHeader=$($helpContentHeaders[i]);if(!$helpContentHeader.length||$helpContentHeader.position().top>=scrollTop){contentScrollSavedPosition=[Math.floor(scrollTop-$candidateHeader.position().top-parseInt($candidateHeader.css("margin-top")),10),$candidateHeader];updateTocCurrentItem();break}else{$candidateHeader=$helpContentHeader}}App.DataModule.Storage.setStrCache(HelpModule,"saved-scroll-position",contentScrollSavedPosition[0]+" "+contentScrollSavedPosition[1].attr("data-id"))};restoreContentScrollSavedPosition=function(animate){if(animate){scrollingTo=contentScrollSavedPosition[1].attr("data-id")}$helpContentContainer.stop(true,false).scrollTo(contentScrollSavedPosition[1].position().top+parseInt(contentScrollSavedPosition[1].css("margin-top"),10)+contentScrollSavedPosition[0],{duration:animate?moduleOptions.contentScrollDuration:0},function(){scrollingTo=null})};updateTocCurrentItem=function(){var newMaterialId=scrollingTo!==null?scrollingTo:contentScrollSavedPosition[1].attr("data-id");if(lastShownMaterialId!==newMaterialId){$helpToc.children().removeClass("help__toc-element_current");$helpToc.find(_.str.sprintf("[data-id='%s']",newMaterialId)).addClass("help__toc-element_current")}if(lastShownMaterialId!=newMaterialId){if(HelpModule.isShowing()){lastShownMaterialId=newMaterialId;HelpModule.trigger("show",{materialId:newMaterialId})}}};$help=$.bem.generateBlock("help").setMod("help","state","hidden");$helpBody=$.bem.generateElement("help","body");$helpContentContainer=$.bem.generateElement("help","content-container");$helpContent=$.bem.generateElement("help","content");$helpTocContainer=$.bem.generateElement("help","toc-container");$helpToc=$.bem.generateElement("help","toc");$helpCloser=$.bem.generateElement("help","closer");$help.click(function(event){if($help.hasMod("help","state_shown")){HelpModule.hide()}event.stopPropagation()});$helpBody.click(function(event){event.stopPropagation()});$helpContent.addClass("help-content").append($(Backbone.Marionette.TemplateCache.get("#help-content")({Ctrl:_.str.capitalize(App.keyboardMappings.ctrlTitle)})));var usedDataIds=[];$helpContentHeaders=$helpContent.find("h1, h2, h3");$helpContentHeaders.each(function(i,helpContentHeader){var $helpContentHeader=$(helpContentHeader);var title=$helpContentHeader.attr("data-toc");if(!title){title=$helpContentHeader.text()}var id=$helpContentHeader.attr("data-id");if(_.isUndefined(id)){id=_.str.slugify($helpContentHeader.text())}if(usedDataIds.indexOf(id)!=-1){throw _.str.sprintf("There are more than one header with id = '%s' in help",id)}usedDataIds.push(id);$helpContentHeader.attr("data-id",id);var $currentHelpTocElement=$.bem.generateElement("a","help","toc-element").attr("href",id?_.str.sprintf("#help/%s",id):"#help").attr("data-id",id).setMod("help","toc-element","hierarchy",$helpContentHeader.prop("tagName").slice(1)).text(title).click(function(event){if($.eventsugar.isAttemptToOpenInAnotherWindow(event)){return}event.preventDefault();HelpModule.show({materialId:id,forceScroll:true});return false});$helpToc.append($currentHelpTocElement);$lastContentHeader=$helpContentHeader});var rawSavedScrollPosition=App.DataModule.Storage.getStrCache(HelpModule,"saved-scroll-position");if(rawSavedScrollPosition){var i=rawSavedScrollPosition.indexOf(" ");var offset=parseInt(rawSavedScrollPosition.slice(0,i));var $materialHeader=$helpContentHeaders.filter(_.str.sprintf("[data-id='%s']",rawSavedScrollPosition.slice(i+1)));if($materialHeader.length){contentScrollSavedPosition=[offset,$materialHeader]}}if(!contentScrollSavedPosition){contentScrollSavedPosition=[0,$helpContentHeaders.first()]}lastShownMaterialId=contentScrollSavedPosition[1].attr("data-id");if(navigator&&navigator.appVersion&&navigator.appVersion.indexOf("Win")!=-1){$helpCloser.setMod("help","closer","position","right")}$helpCloser.click(function(event){if($help.hasMod("help","state_shown")){HelpModule.hide()}event.stopPropagation()});$helpContentContainer.append($helpContent);$helpTocContainer.append($helpToc);$helpBody.append($helpContentContainer,$helpTocContainer);$help.append($helpBody,$helpCloser);$(".app__help").append($help);$help.setMod("help","animating",true);var $window=$(window);$window.on("resize",function(){if(!HelpModule.isShowing()){return}if(!resizing){resizing=true;updateContentBottomMargin(true)}restoreContentScrollSavedPosition()});$window.on("resize",_.debounce(function(event){if(!HelpModule.isShowing()){return}updateContentBottomMargin();resizing=false;restoreContentScrollSavedPosition(true)},moduleOptions.resizeDebounceDuration));$helpContentContainer.on("scroll",_.throttle(function(event){if(!resizing){scrolling=true;updateContentScrollSavedPosition()}},moduleOptions.scrollThrottleDuration,{trailing:false}));$helpContentContainer.on("scroll",_.debounce(function(event){scrolling=false;updateContentScrollSavedPosition();if(HelpModule.isShowing()&&pendingMaterialId!==null&&pendingMaterialId!=lastShownMaterialId&&pendingMaterialId!=contentScrollSavedPosition[1].attr("data-id")){contentScrollSavedPosition=[0,$helpContentHeaders.filter(_.str.sprintf("[data-id='%s']",pendingMaterialId))];pendingMaterialId=null;restoreContentScrollSavedPosition(true)}else{pendingMaterialId=null}},moduleOptions.scrollDebounceDuration));new ScrollFix($helpContentContainer.get(0));$helpContentContainer.get(0).addEventListener("touchmove",function(event){event.stopPropagation()});var helpContentHasVimeo=false;$helpContent.find("iframe").each(function(){var $iframe=$(this);var src=$iframe.attr("src");if(!_.isString(src)){src=""}if(src.indexOf("vimeo")!==-1){helpContentHasVimeo=true;$(this).attr("data-type","vimeo")}});if(helpContentHasVimeo){var scriptElement=document.createElement("script");scriptElement.type="text/javascript";scriptElement.async=true;scriptElement.src="http://a.vimeocdn.com/js/froogaloop2.min.js";document.getElementsByTagName("body")[0].appendChild(scriptElement)}});HelpModule.show=function(options){var options=$.extend({},options);assertModuleIsInitialized();var helpIsOpening=false;if($help.hasMod("help","state_hidden")||$help.hasMod("help","state_pre-hidden")){helpIsOpening=true;$help.toggleClass("help_animating",!options.instant);$help.setMod("help","state","pre-shown");lastShownMaterialId=null;pendingMaterialId=null;updateContentBottomMargin()}var needToScroll=true;var $materialHeader=$helpContent.find(_.str.sprintf("[data-id='%s']",options.materialId));if($materialHeader.length){pendingMaterialId=options.materialId;if(!scrolling){if(options.forceScroll||!contentScrollSavedPosition[1].is($materialHeader)){contentScrollSavedPosition=[0,$materialHeader]}else{needToScroll=false}}}if(helpIsOpening||needToScroll&&(!scrolling||scrollingTo!==null)){restoreContentScrollSavedPosition(!helpIsOpening);updateTocCurrentItem()}if(!needToScroll){scrollingTo=null;pendingMaterialId=null}if($help.hasMod("help","state_pre-shown")){$help.setMod("help","state","shown")}if(!!options.instant){setTimeout(function(){$help.setMod("help","animating",true)},10)}};HelpModule.hide=function(){assertModuleIsInitialized();$helpContent.find("iframe[data-type=vimeo]").each(function(){if(window.$f){$f(this).api("pause")}});$help.setMod("help","state","pre-hidden");HelpModule.trigger("hide");setTimeout(function(){if($help.hasMod("help","state_pre-hidden")){$help.setMod("help","state","hidden")}},1e3)};HelpModule.isShowing=function(){return $help.hasMod("help","state_pre-shown")||$help.hasMod("help","state_shown")}},Logger); +"use strict";App.module("NotificationsModule",function(NotificationsModule,App,Backbone,Marionette,$,_,Logger){NotificationsModule.startWithParent=false;var defaultModuleOptions={defaultTTL:10,minTTLOnUnfreeze:6};var moduleOptions;var logger=null;var $notifications=null;var $notificationStack=null;var addNewNotification=null;var removeNotification=null;var updateNotification=null;var notificationTimeoutHandler=null;var assertModuleIsInitialized=function(){if(!$notifications){throw"NotificationsModule has not been initialized"}};NotificationsModule.addInitializer(function(options){moduleOptions=_.extend(defaultModuleOptions,options);logger=Logger.get("NotificationsModule");logger.debug("Begin init");$notifications=$(".app__notifications").addClass("notifications");$notificationStack=$.bem.generateElement("notifications","stack").appendTo($notifications);var setupNotification=function($notification,notificationOptions){var $notificationContent=$notification.children().eq(0).children().eq(0);if(!$notificationContent.hasClass("notification__content")){$notificationContent=$notificationContent.children().eq(0)}$notificationContent.children().detach();if(notificationOptions.content instanceof $){$notificationContent.append(notificationOptions.content)}else{$notificationContent.html(notificationOptions.content)}$notification.attr("data-id",notificationOptions.id);$notification.data("options",notificationOptions);$notification.data("$content",$notificationContent);var modifiersAsArray=null;if(_.isString(notificationOptions.modifiers)){modifiersAsArray=notificationOptions.modifiers.split(" ")}if(_.isArray(notificationOptions.modifiers)){modifiersAsArray=notificationOptions.modifiers}var state=$notification.getMod("notification","state");$notification.attr("class","notification notification_state_"+state);if(_.isArray(modifiersAsArray)&&modifiersAsArray.length){$notification.addClass("notification_"+modifiersAsArray.join(" notification_"))}if(!$notification.getMod("notification","ttl")){$notification.setMod("notification","ttl",moduleOptions.defaultTTL)}};var freezeTTL=function(){logger.debug("Freeze ttl",this);$(this).addClass("notification_ttl-frozen")};var unfreezeTTL=function(){logger.debug("Unfreeze ttl",this);var $this=$(this);var ttl=$this.getMod("notification","ttl");if(ttl*1==ttl&&ttl
").addClass("tooltip").appendTo("body")},update:function(mouseEvent,title,target){var _this=this;if(!mouseEvent||mouseEvent.type=="mouseout"||mouseEvent.type=="mouseup"||!title){_this.previousTarget=null;_this.$tooltip.addClass("tooltip_animation_slow-opacity");_this.$tooltip.removeClass("tooltip_state_visible")}else{if(target!=_this.previousTarget){_this.$tooltip.removeClass("tooltip_animation_slow-opacity");_this.$tooltip.addClass("tooltip_state_visible");_this.$tooltip.html(title)}_this.$tooltip.position({of:mouseEvent,my:"left+20 topt+20",collision:"flip flip"})}}});TooltipModule.tooltipView=new TooltipModule.TooltipView;TooltipModule._updateTooltipForDOMNodeWithExTitle=function(mouseEvent){TooltipModule.tooltipView.update(mouseEvent,$(this).attr("tooltip-title"),this)};TooltipModule.update=function(mouseEvent,title,target){TooltipModule.tooltipView.update(mouseEvent,title,target)};TooltipModule.convertTitlesToTooltips=function($container){$container.find("[title]").each(function(){var $this=$(this);$this.attr("tooltip-title",$this.attr("title")).removeAttr("title");if(App.options.enableTooltipsForControlsWithTitles){$this.on("mouseover",TooltipModule._updateTooltipForDOMNodeWithExTitle).on("mouseout",TooltipModule._updateTooltipForDOMNodeWithExTitle).on("mousemove",TooltipModule._updateTooltipForDOMNodeWithExTitle).on("mouseup",TooltipModule._updateTooltipForDOMNodeWithExTitle)}})}})}); +"use strict";App.module("ContextModule",function(ContextModule,App,Backbone,Marionette,$,_,Logger){ContextModule.startWithParent=false;var defaultModuleOptions={stateHistoryMaxLength:20};var logger=null;var assertModuleIsInitialized=function(){if(!logger){throw"ContextModule has not been initialized"}};ContextModule.addInitializer(function(options){ContextModule.moduleOptions=_.extend(defaultModuleOptions,options);logger=Logger.get("ContextModule")})},Logger); +"use strict";App.module("ContextModule",function(ContextModule,App,Backbone,Marionette,$,_,Logger){var logger=null;ContextModule.addInitializer(function(options){logger=Logger.get("ContextModule.Config");logger.setLevel(Logger.WARN);ContextModule.Config=Backbone.Model.extend({cidPrefix:"cf",constructor:function(attributes,options){this._modificationPropagationEnabled=true;this._parametersWereModified=false;this._plannedParameterUpdatesWereModified=false;this._cachedHashForTrimmedParameters=null;this._cachedHashForParameters=null;this._cachedHashForPlannedParameterUpdates=null;this._cachedHashForPermanent=null;this._cachedHashForTemp=null;this._cachedHash=null;var defaultParameters=_.isSimpleObject(attributes)&&_.isSimpleObject(attributes.parameters)?attributes.parameters:undefined;var defaultPlannedParameterUpdates=_.isSimpleObject(attributes)&&_.isSimpleObject(attributes.plannedParameterUpdates)?attributes.plannedParameterUpdates:undefined;var realAttributes={};realAttributes.parameters=new Backbone.Model(defaultParameters);realAttributes.plannedParameterUpdates=new Backbone.Model(defaultPlannedParameterUpdates);this.listenTo(realAttributes.parameters,"change",this._registerModificationOfParameters);this.listenTo(realAttributes.plannedParameterUpdates,"change",this._registerModificationOfPlannedParameterUpdates);Backbone.Model.apply(this,[realAttributes,options]);if(attributes&&attributes.clientId){this.cid=attributes.clientId;_.markUniqueIdAsAlreadyUsed(attributes.clientId)}},getClientId:function(){return this.cid},getDimension:function(){return this.collection?this.collection.dimension:undefined},getConfigGridType:function(){return this.collection?this.collection.configGridType:undefined},getParameterValue:function(parameterName){return this.attributes.parameters.attributes[parameterName]},getPlannedParameterValue:function(parameterName){var plannedParameterUpdatesAttributes=this.attributes.plannedParameterUpdates.attributes;if(plannedParameterUpdatesAttributes.hasOwnProperty(parameterName)){return plannedParameterUpdatesAttributes[parameterName]}else{return this.attributes.parameters.attributes[parameterName]}},getPlannedParameterValues:function(parameterName){var result=_.clone(this.attributes.parameters.attributes);var plannedParameterUpdatesAttributes=this.attributes.plannedParameterUpdates.attributes;for(var key in plannedParameterUpdatesAttributes){if(plannedParameterUpdatesAttributes.hasOwnProperty(key)){if(plannedParameterUpdatesAttributes[key]===undefined){if(result.hasOwnProperty(key)){delete result[key]}}else{result[key]=plannedParameterUpdatesAttributes[key]}}}return result},isPlannedToUpdate:function(parameterName){return this.attributes.plannedParameterUpdates.attributes.hasOwnProperty(parameterName)},hasPlannedParameterUpdates:function(){return _.size(this.attributes.plannedParameterUpdates.attributes)>0},updateParameter:function(parameterName,parameterValue){if(!_.isString(parameterName)){throw _.str.sprintf("Config::updateParameter called a non-string parameterName: %s",parameterName)}var prevModificationPropagationEnabled=this._modificationPropagationEnabled;this._modificationPropagationEnabled=false;this.attributes.plannedParameterUpdates.unset(parameterName);if(typeof parameterValue!=="undefined"){this.attributes.parameters.set(parameterName,parameterValue)}else{this.attributes.parameters.unset(parameterName)}if(prevModificationPropagationEnabled){this._triggerModificationEventsIfNeeded();this._modificationPropagationEnabled=true}},planParameterUpdate:function(parameterName,parameterValue){if(!_.isString(parameterName)){throw _.str.sprintf("Config::planParameterUpdate called a non-string parameterName: %s",parameterName)}var prevModificationPropagationEnabled=this._modificationPropagationEnabled;this._modificationPropagationEnabled=false;var plannedParameterUpdatesAttributes=this.attributes.plannedParameterUpdates.attributes;var parametersAttributes=this.attributes.parameters.attributes;if(parameterValue===parametersAttributes[parameterName]){if(this.attributes.plannedParameterUpdates.attributes.hasOwnProperty(parameterName)&&this.attributes.plannedParameterUpdates.attributes[parameterName]===undefined){this.attributes.plannedParameterUpdates.set(parameterName,42,{silent:true})}this.attributes.plannedParameterUpdates.unset(parameterName)}else{if(parameterValue===undefined&&this.attributes.parameters.attributes.hasOwnProperty(parameterName)&&!this.attributes.plannedParameterUpdates.attributes.hasOwnProperty(parameterName)){this.attributes.plannedParameterUpdates.set(parameterName,42,{silent:true})}this.attributes.plannedParameterUpdates.set(parameterName,parameterValue)}if(prevModificationPropagationEnabled){this._triggerModificationEventsIfNeeded();this._modificationPropagationEnabled=true}},cancelPlannedParameterUpdate:function(parameterName){if(!_.isString(parameterName)){throw _.str.sprintf("Config::cancelPlannedParameterUpdate called a non-string parameterName: %s",parameterName)}var prevModificationPropagationEnabled=this._modificationPropagationEnabled;this._modificationPropagationEnabled=false;this.attributes.plannedParameterUpdates.unset(parameterName);if(prevModificationPropagationEnabled){this._triggerModificationEventsIfNeeded();this._modificationPropagationEnabled=true}},updateParameters:function(parameters){if(!_.isSimpleObject(parameters)){throw _.str.sprintf("Config::updateParameters called a wrong argument: %s",parameters)}this._modificationPropagationEnabled=false;for(var parameterName in parameters){if(parameters.hasOwnProperty(parameterName)){this.updateParameter(parameterName,parameters[parameterName])}}this._triggerModificationEventsIfNeeded();this._modificationPropagationEnabled=true},planParameterUpdates:function(parameters){if(!_.isSimpleObject(parameters)){throw _.str.sprintf("Config::planParameterUpdates called with a wrong argument: %s",parameters)}this._modificationPropagationEnabled=false;for(var parameterName in parameters){if(parameters.hasOwnProperty(parameterName)){this.planParameterUpdate(parameterName,parameters[parameterName])}}this._triggerModificationEventsIfNeeded();this._modificationPropagationEnabled=true},cancelPlannedParameterUpdates:function(parameterNames){if(_.isArray(parameterNames)){this._modificationPropagationEnabled=false;for(var i=0;ithis.attributes.maxStackSize){this._undoStack=this._undoStack.slice(0,this.attributes.maxStackSize)}if(this._redoStack.length>this.attributes.maxStackSize){this._redoStack=this._redoStack.slice(0,this.attributes.maxStackSize)}}})})},Logger); +"use strict";App.module("ContextModule",function(ContextModule,App,Backbone,Marionette,$,_,Logger){var logger=null;ContextModule.addInitializer(function(options){logger=Logger.get("ContextModule.AppContext");logger.setLevel(Logger.DEBUG);ContextModule.AppContext=Backbone.Model.extend({defaults:function(){return{state:new ContextModule.State,stateHistory:new ContextModule.StateHistory,stateBookmarks:new ContextModule.StateBookmarkCollection}},initialize:function(){this._modificationPropagationEnabled=true;this._linkBetweenStateAndStateHistoryEnabled=true;this._attributesWereModified=false;this._registerStateChange();this.attributes.state.bind("change",this._registerStateChange,this);this.attributes.stateHistory.bind("change",this._registerStateHistoryChange,this);this.attributes.stateBookmarks.bind("change",this._registerStateBookmarksChange,this)},serialize:function(){var result={stateHistory:this.attributes.stateHistory.serialize(),stateBookmarks:this.attributes.stateBookmarks.serialize()};return result},unserialize:function(serializedAttributes){this._modificationPropagationEnabled=false;var fixedSerializedAttributes=serializedAttributes;if(!_.isSimpleObject(fixedSerializedAttributes)){logger.warn("AppContext::unserialize called for not an object: ",serializedAttributes);fixedSerializedAttributes={}}this.attributes.stateBookmarks.unserialize(fixedSerializedAttributes.stateBookmarks);var serializedStateHistory=fixedSerializedAttributes["stateHistory"];if(!_.isSimpleObject(serializedStateHistory)){serializedStateHistory={}}this._linkBetweenStateAndStateHistoryEnabled=false;this.attributes.state.unserialize(serializedStateHistory.currentSerializedState);serializedStateHistory.currentSerializedState=this.attributes.state.serialize();this.attributes.stateHistory.unserialize(serializedStateHistory);this._linkBetweenStateAndStateHistoryEnabled=true;this._triggerModificationEventsIfNeeded();this._modificationPropagationEnabled=true},_registerStateChange:function(){if(this._linkBetweenStateAndStateHistoryEnabled){this.attributes.stateHistory.set("currentSerializedState",this.attributes.state.serialize())}this._registerModificationOfAttribute()},_registerStateHistoryChange:function(){if(this._linkBetweenStateAndStateHistoryEnabled){this.attributes.state.unserialize(this.attributes.stateHistory.get("currentSerializedState"))}if(this._stateHistoryModificationPropagationEnabled){this._registerModificationOfAttribute()}},_registerStateBookmarksChange:function(){this._registerModificationOfAttribute()},_registerModificationOfAttribute:function(){this._attributesWereModified=true;if(this._modificationPropagationEnabled){this._triggerModificationEventsIfNeeded()}},_triggerModificationEventsIfNeeded:function(){if(this._attributesWereModified){this.trigger("change")}this._attributesWereModified=false}})})},Logger); +"use strict";App.module("ContextModule",function(ContextModule,App,Backbone,Marionette,$,_,Logger){var logger=null;ContextModule.addInitializer(function(options){logger=Logger.get("ContextModule.AppContextManager");logger.setLevel(Logger.DEBUG);ContextModule.AppContextManager=Backbone.Marionette.Object.extend({initialize:function(){this.defaultSerializedAppContexts={"":{stateHistory:{currentSerializedState:{musicCollectionGrid:{selectedEntityConfigClientId:"def0",entityConfigs:[{clientId:"def0",parameters:{library:"CHARM",composer:"Mozart"}},{clientId:"def1",parameters:{library:"CHARM",composer:"Haydn"}}],viewConfigs:[{clientId:"def2",parameters:{kind:"list"}},{clientId:"def3",parameters:{kind:"tonic-histogram"}}]},musicRecordingGrid:{viewConfigs:[{clientId:"def4",parameters:{kind:"properties"}},{clientId:"def5",parameters:{kind:"midi-pitch-histogram"}}]}}}},empty:{}}},saveToStorage:function(appContext){logger.debug("Saving to storage");return App.DataModule.Storage.setObjCache(ContextModule,"context",appContext.serialize())},restoreFromStorage:function(appContext,nameOfDefaultIfFailure){logger.debug("Restoring from storage");var serializedAppContext=App.DataModule.Storage.getObjCache(ContextModule,"context");if(!serializedAppContext){this.restoreDefault(appContext,nameOfDefaultIfFailure);return false}else{appContext.unserialize(serializedAppContext);return true}},restoreDefault:function(appContext,nameOfDefault){var name=nameOfDefault;if(!name){name=""}logger.debug("Restoring default");appContext.unserialize(this.defaultSerializedAppContexts[name])}})})},Logger); +"use strict";App.module("DataModule",function(DataModule,App,Backbone,Marionette,$,_,Logger){DataModule.startWithParent=false},Logger); +"use strict";App.module("DataModule.Storage",function(Storage,App,Backbone,Marionette,$,_,Logger){var logger=null;var assertModuleIsInitialized=function(){if(!logger){throw"Storage has not been initialized"}};Storage.addInitializer(function(){logger=Logger.get("DataModule.Storage");logger.debug("Begin init");logger.debug("End init")});Storage.setStrCache=function(module,key,value){assertModuleIsInitialized();var moduleName=_.isObject(module)?module.moduleName:"";if(!moduleName){moduleName=""}if(value===undefined){localStorage&&localStorage.removeItem("dml."+moduleName+"."+key);return true}else if(_.isString(value)){try{localStorage&&localStorage.setItem("dml."+moduleName+"."+key,value);logger.info("Set string cache",moduleName,key,value);return true}catch(e){var maxOutputLength=100;logger.error("Set string cache failed:",moduleName,"→",key,"=",value.slice(0,maxOutputLength)+(value.length>maxOutputLength?"...":""));return false}}else{throw _.str.sprintf("Storage.setStrCache only accepts string for value, %s given: ",typeof value,value)}};Storage.getStrCache=function(module,key){assertModuleIsInitialized();var moduleName=_.isObject(module)?module.moduleName:"";if(!moduleName){moduleName=""}var value=localStorage?localStorage.getItem("dml."+moduleName+"."+key):null;if(value===null){value=undefined}logger.info("Get string cache",module,key,value);return value};Storage.setObjCache=function(module,key,value){if(!(_.isUndefined(value)||_.isNull(value)||_.isObject(value)&&!_.isFunction(value))){throw _.str.sprintf("Storage.setObjCache can only acccept object, got %s",value)}var str=JSON.stringify(value);return Storage.setStrCache(module,key,str)};Storage.getObjCache=function(module,key){assertModuleIsInitialized();var value=localStorage?localStorage.getItem("dml."+module.moduleName+"."+key):null;if(value===null){return undefined}if(value==="null"){return null}try{var value=JSON.parse(value);return value}catch(e){return null}}},Logger); +"use strict";App.module("DataModule.CliopatriaAPI",function(CliopatriaAPI,App,Backbone,Marionette,$,_,Logger){CliopatriaAPI.startWithParent=false;var defaultModuleOptions={callbackTimeout:3e4,callbackTimeoutCheckingInterval:1e3,callbackFunctionName:"jsonp_cb",dataVersion:null,apiRootPaths:[],apiVersion:1,dataCaching:true};var logger=null;var dataVersionSuffix=null;var realAPIRootPaths=null;var realAPIRootPathsCount=null;var queryPool=null;var generateQuery=null;var callbackTimeoutExpiryChecker=null;var callbackTimeoutExpiryCheckerId=null;var assertModuleIsInitialized=function(){if(!logger){throw"DataModule.CliopatriaAPI has not been initialized"}};CliopatriaAPI.addInitializer(function(options){CliopatriaAPI.options=_.extend(defaultModuleOptions,options);logger=Logger.get("DataModule.CliopatriaAPI");if(CliopatriaAPI.options.dataVersion){dataVersionSuffix=_.str.sprintf("&format=jsonp&dv=%s",encodeURIComponent(CliopatriaAPI.options.dataVersion))}else{dataVersionSuffix="&format=jsonp"}realAPIRootPaths=[];for(var i=0;iCliopatriaAPI.options.callbackTimeout){delete queryPool[query];$(queryPoolEntry[4]).remove();executeAllCallbacksOfTheQueryPoolEntry(queryPoolEntry,{errors:[{code:100,message:"API request failed"}]})}}};callbackTimeoutExpiryCheckerId=setInterval(callbackTimeoutExpiryChecker,CliopatriaAPI.options.callbackTimeoutCheckingInterval)});CliopatriaAPI.request=function(methodName,parameters,callback){assertModuleIsInitialized();var query=generateQuery(methodName,parameters);var realAPIRootPath;if(realAPIRootPathsCount==1){realAPIRootPath=realAPIRootPaths[0]}else{var sumOfCharCodes=0;for(var i=0;i0){attributes=_.clone(this.options.customAttributesWhenEmpty)}else{attributes=_.clone(this.options.customAttributesWhenFaulty);attributes.errors=data.errors;logger.warn("An error occured when attempting to obtain collection definition. Query / response:",query,data)}attributes.query=query;return attributes}})})},Logger); +"use strict";App.module("DataModule",function(DataModule,App,Backbone,Marionette,$,_,Logger){var logger=null;DataModule.addInitializer(function(){logger=Logger.get("App.DataModule");DataModule.DynamicDefinitionForRecording=DataModule.DynamicDefinition.extend({});DataModule.DymanicDefinitionProviderForRecordings=DataModule.DynamicDefinitionProvider.extend({options:{DynamicDefinition:DataModule.DynamicDefinitionForRecording,apiMethod:"getRecordingPerspective",customAttributesWhenNotApplicable:{label:undefined},customAttributesWhileBeingUpdated:{label:null},customAttributesWhenFaulty:{label:false}},isFaulty:function(dynamicDefinition){return dynamicDefinition.attributes.label===false},isBeingUpdated:function(dynamicDefinition){return dynamicDefinition.attributes.label===null},configParametersToRequestParameters:function(config){var rawConfigParameters=config.attributes.parameters.attributes;if(rawConfigParameters.recordingURI){return{uri:rawConfigParameters.recordingURI,pid:"properties"}}else{return null}},apiResponseToAttributes:function(data,query){var attributes={};if(data&&data.label){attributes=data}else{attributes={label:false};if(data.errors){attributes=_.clone(this.options.customAttributesWhenFaulty);attributes.errors=data.errors}logger.warn("An error occured when attempting to obtain new recording definition. Query / response:",query,data)}attributes.query=query;return attributes}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.logger=Logger.get("GraphicsRenderingModule");GraphicsRenderingModule._formatNumberForTooltip=function(number){var nDigits=2;if(Math.abs(number)>1e3||Math.floor(number)==number){nDigits=0}else if(Math.abs(number)>100){nDigits=1}return _.str.numberFormat(number,nDigits)},GraphicsRenderingModule.__handleVegaMouseEvent=function(){var pointerEventType=arguments[0].type;if(pointerEventType=="mouseover"||pointerEventType=="mouseout"){var $vegaNode=$(arguments[0].target).closest("div");if(pointerEventType=="mouseover"){$vegaNode.data("vegaHoveredItem",arguments[1])}else{$vegaNode.removeData("vegaHoveredItem")}}var data=null;if(arguments[1]&&arguments[1].datum){data=arguments[1].datum}if(_.isObject(data)&&data.tooltip){App.TooltipModule.tooltipView.update(arguments[0],_.isArray(data.tooltip)?data.tooltip[2]:data.tooltip,data)}else if(_.isArray(data)){var tooltip=data[0];if(tooltip){var labelParts=[];if(data[0]=="tooltip_range"){labelParts.push(GraphicsRenderingModule._formatNumberForTooltip(data[2]));labelParts.push(" ... ");labelParts.push(GraphicsRenderingModule._formatNumberForTooltip(data[3]));labelParts.push(" → ");labelParts.push(GraphicsRenderingModule._formatNumberForTooltip(data[1]).replace("-","−"))}else if(data[0]=="tooltip_point"){if(data[2]*1===data[2]){labelParts.push(GraphicsRenderingModule._formatNumberForTooltip(data[2]))}else{labelParts.push(data[2])}labelParts.push(" → ");labelParts.push(GraphicsRenderingModule._formatNumberForTooltip(data[1]))}else if(data[0]=="tooltip_value"){labelParts.push(GraphicsRenderingModule._formatNumberForTooltip(data[1]).replace("-","−"))}if(data[4]){labelParts.unshift(data[4])}if(data[5]){labelParts.push(data[5])}App.TooltipModule.tooltipView.update(arguments[0],labelParts.join(""),data)}}else{App.TooltipModule.tooltipView.update()}},GraphicsRenderingModule.vegaIsReady=function($domNode){return $domNode.hasClass("vega")};GraphicsRenderingModule.vegaAsync=function($domNode,spec,renderer,callback){var rand=Math.random();$domNode.data("vega-async-rand",rand);var $tempNode=$("
");setTimeout(function(){vg.parse.spec(spec,function(chart){var vegaObj=chart({el:$tempNode.get(0),renderer:App.options.vegaRenderer?App.options.vegaRenderer:renderer}).on("mouseover",GraphicsRenderingModule.__handleVegaMouseEvent).on("mousemove",GraphicsRenderingModule.__handleVegaMouseEvent).on("mouseout",GraphicsRenderingModule.__handleVegaMouseEvent).update();var $vegaNode=$tempNode.children(0);$vegaNode.data("vegaObj",vegaObj);var vegaIsReadyInterval=setInterval(function(){if($domNode.data("vega-async-rand")!==rand){clearInterval(vegaIsReadyInterval);return}if(GraphicsRenderingModule.vegaIsReady($vegaNode)){$vegaNode.addClass("vic-vega");$domNode.empty().append($vegaNode);clearInterval(vegaIsReadyInterval)}},50)})},10)}})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.RendererPrototypes={};GraphicsRenderingModule.renderers={};GraphicsRenderingModule.registerRenderer=function(rendererDefinition){var RendererPrototype;var inheritId=rendererDefinition.inherit?rendererDefinition.inherit:"";var id=rendererDefinition.id;if(!id){throw _.str.sprintf("Renderer definition does not contain an id")}var rendererWithThisId=null;try{rendererWithThisId=GraphicsRenderingModule.getRendererById(id)}catch(e){}if(rendererWithThisId){throw _.str.sprintf('Renderer with id "%s" already exists',id)}var prototypeOptions={};var prototypeDefaultVegaConfig={};if(!inheritId){RendererPrototype=Marionette.Object}else{try{RendererPrototype=GraphicsRenderingModule.getRendererPrototypeById(inheritId);var parentRenderer=GraphicsRenderingModule.getRendererById(inheritId);prototypeOptions=parentRenderer.options;prototypeDefaultVegaConfig=parentRenderer.defaultVegaConfig}catch(e){throw _.str.sprintf('Renderer with id "%s" could not be inherited from renderer with id "%s" (it does not exist)',id,inheritId)}}var combinedOptions=rendererDefinition.options?_.defaults({},rendererDefinition.options,prototypeOptions):_.clone(prototypeOptions);var combinedDefaultVegaConfig=rendererDefinition.defaultVegaConfig?_.defaults({},rendererDefinition.defaultVegaConfig,prototypeDefaultVegaConfig):_.clone(prototypeDefaultVegaConfig);for(var key in rendererDefinition.options){if(rendererDefinition.options.hasOwnProperty(key)&&rendererDefinition.options[key]===undefined){delete combinedOptions[key]}}rendererDefinition.options=combinedOptions;for(var key in rendererDefinition.defaultVegaConfig){if(rendererDefinition.defaultVegaConfig.hasOwnProperty(key)&&rendererDefinition.defaultVegaConfig[key]===undefined){delete combinedDefaultVegaConfig[key]}}rendererDefinition.defaultVegaConfig=combinedDefaultVegaConfig;var Renderer=RendererPrototype.extend(rendererDefinition);GraphicsRenderingModule.RendererPrototypes[id]=Renderer;GraphicsRenderingModule.renderers[id]=new Renderer};GraphicsRenderingModule.getRendererPrototypeById=function(id){var RendererPrototype=GraphicsRenderingModule.RendererPrototypes[id];if(!RendererPrototype){throw _.str.sprintf('RendererPrototype with id "%s" not found.',id)}return RendererPrototype};GraphicsRenderingModule.getRendererById=function(id){var renderer=GraphicsRenderingModule.renderers[id];if(!renderer){throw _.str.sprintf('Renderer with id "%s" not found.',id)}return renderer};GraphicsRenderingModule.render=function(id,$element,data,options){GraphicsRenderingModule.getRendererById(id).render($element,data,options)}})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"_",defaultVegaConfig:{colorForBackground:"#fff",colorForAxisLabels:"#999",colorForAxes:"#ccc",colorForBackgroundFill:"#f0f0f0",fontFace:"'Web Open Sans', Verdana, sans-serif",fontSize:10,fontSizeForLabelsInAxis:10,fontSizeForLabelsInSecondaryAxis:8,data:[],scales:[],axes:[],marks:[],xdata:[],xscales:[],xaxes:[],xmarks:[]},render:function($element,data,options){var vc=_.mapObject(this.defaultVegaConfig,_.clone);vc=_.extend(vc,options);vc.totalWidth=$element.width();vc.totalHeight=$element.height();this._formVC(vc,data);var vegaSpec={background:vc.colorForBackground,width:vc.width,height:vc.height,padding:vc.padding,data:vc.data,scales:vc.scales,axes:vc.axes,marks:vc.marks};var $cover=$.bem.generateElement("vis-instance","cover",["category_process","visible"]);var $coverMessage=$.bem.generateElement("vis-instance","cover-message").text("Drawing...");$cover.append($coverMessage);$element.append($cover);GraphicsRenderingModule.vegaAsync($element,vegaSpec,"svg")},_formVC:function(vc,data,options){}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"chord-seq._",inherit:"_",defaultVegaConfig:{modesOfPiece:[undefined,"major","minor"],relativeRootNotes:_.range(1,13),relativeRootNotesInMajor:["I","#I","II","#II","III","IV","#IV","V","#V","VI","#VI","VII"],relativeRootNotesInMinor:["I","#I","II","III","#III","IV","#IV","V","VI","#VI","VII","#VII"],chordTypes:["","6","7","m","m6","m7","maj7","m7b5","dim","dim7","aug"],chordTypesWithM:["M","6","7","m","m6","m7","maj7","m7b5","dim","dim7","aug"],sequenceOfUsedRootNotes:_.range(12),sequenceOfUsedChordTypes:_.range(11),chordGrouppingIsByType:false,nIsIncluded:true,guidesAreVisible:true},parseEncodedChord:function(encodedChord){if(encodedChord=="0"){return 0}if(_.isString(encodedChord)&&encodedChord.length==7){return[encodedChord[0]*1,encodedChord[1]*10+encodedChord[2]*1-1,encodedChord[3]*10+encodedChord[4]*1-1,encodedChord[5]*10+encodedChord[6]*1-1]}throw"could not parse chord "+encodedChord},parsedEncodedChordToBin:function(vc,parsedEncodedChord){if(!_.isArray(parsedEncodedChord)){return vc.nIsIncluded?vc.numberOfChords-1:null}var indexOfRootNote=_.indexOf(vc.sequenceOfUsedRootNotes,parsedEncodedChord[1]);var indexOfChordType=_.indexOf(vc.sequenceOfUsedChordTypes,parsedEncodedChord[2]);if(indexOfRootNote==-1||indexOfChordType==-1){return null}if(vc.chordGrouppingIsByType){return vc.numberOfRootNotes*indexOfChordType+indexOfRootNote}else{return vc.numberOfChordTypes*indexOfRootNote+indexOfChordType}},chordBinToCoordinate:function(vc,chordBin){if(chordBin===null){throw"cannot convert null bin to a coordinate"}var nGaps=Math.floor(chordBin/(vc.chordGrouppingIsByType?vc.numberOfRootNotes:vc.numberOfChordTypes));return chordBin*vc.chordSize+nGaps*vc.chordGroupGapSize},titleOfParsedEncodedChord:function(vc,parsedEncodedChord){if(parsedEncodedChord===0){return"N"}else{return vc.titlesForRootNotes[parsedEncodedChord[1]]+" "+vc.titlesForChordTypes[parsedEncodedChord[2]]}}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"chord-seq.od-grid",inherit:"chord-seq._",defaultVegaConfig:{},_formVC:function(vc,data,options){throw"not implemented"}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"chord-seq.parallel-coordinates",inherit:"chord-seq._",defaultVegaConfig:{sizeOfStepMark:5,stepCount:3,primaryAxisFontSize:11,chordGapSizeToChordSizeRatio:1,paddingWhenAxisLabelsAreHidden:{top:5,left:15,bottom:10,right:15},paddingWhenAxisLabelsAreShownParitally:{top:20,left:15,bottom:10,right:15},paddingWhenAxisLabelsAreShown:{top:NaN,left:15,bottom:10,right:15}},_formVC:function(vc,data){var renderer=this;vc.numberOfRootNotes=vc.sequenceOfUsedRootNotes.length;vc.numberOfChordTypes=vc.sequenceOfUsedChordTypes.length;vc.titlesForChordTypes=vc.chordTypesWithM;vc.titlesForRootNotes=vc.relativeRootNotes;if(vc.recordingsInMajorModeAreIncluded&&!vc.recordingsInMinorModeAreIncluded){vc.titlesForRootNotes=vc.relativeRootNotesInMajor}if(vc.recordingsInMinorModeAreIncluded&&!vc.recordingsInMajorModeAreIncluded){vc.titlesForRootNotes=vc.relativeRootNotesInMinor}vc.numberOfChords=vc.numberOfRootNotes*vc.numberOfChordTypes;vc.numberOfGaps=vc.chordGrouppingIsByType?vc.numberOfChordTypes-1:vc.numberOfRootNotes-1;vc.padding=vc.paddingWhenAxisLabelsAreHidden;vc.width=vc.totalWidth-vc.padding.left-vc.padding.right;vc.labelsForGroupsAreShown=vc.width/(vc.numberOfGaps+1)>30;vc.labelsForChordsAreShown=vc.width/(vc.numberOfChords+vc.numberOfGaps)>10;if(vc.labelsForGroupsAreShown){vc.padding=vc.paddingWhenAxisLabelsAreShownParitally}if(vc.labelsForChordsAreShown){vc.padding=vc.paddingWhenAxisLabelsAreShown;var titles=[];if(vc.chordGrouppingIsByType){titles=_.map(vc.sequenceOfUsedRootNotes,function(index){return vc.titlesForRootNotes[index]})}else{titles=_.map(vc.sequenceOfUsedChordTypes,function(index){return vc.titlesForChordTypes[index]})}var maxTitleLength=0;_.each(titles,function(title){if(title.length>maxTitleLength){maxTitleLength=title.length}});vc.padding.top=maxTitleLength*4+25}if(vc.nIsIncluded){vc.numberOfChords+=1;vc.numberOfGaps+=1}vc.chordSize=1;do{vc.chordSize++;vc.chordGroupGapSize=Math.round(vc.chordSize*vc.chordGapSizeToChordSizeRatio);vc.width=(vc.numberOfChords-1)*vc.chordSize+vc.numberOfGaps*vc.chordGroupGapSize}while(vc.width+vc.padding.left+vc.padding.rightvc.stepCount){return}var parsedEncodedChord=renderer.parseEncodedChord(encodedChord);parsedEncodedChordSequence.push(parsedEncodedChord);if(index==vc.stepCount){chordTitles.push("...")}else{chordTitles.push(renderer.titleOfParsedEncodedChord(vc,parsedEncodedChord))}});var tooltip=chordTitles.join(" → ")+"
support: "+support[i];_.each(parsedEncodedChordSequence,function(parsedEncodedChord,indexInSequence){if(failed){return}if(parsedEncodedChord!==0&&!(vc.recordingsInMajorModeAreIncluded&&parsedEncodedChord[0]==1||vc.recordingsInMinorModeAreIncluded&&parsedEncodedChord[0]==2)){failed=true;return}var bin=renderer.parsedEncodedChordToBin(vc,parsedEncodedChord);if(bin===null){failed=true;return}recordsToAdd.push({sequenceId:sequenceId,encodedChordSequence:encodedChordSequence,chordSequenceHasCycles:chordSequenceHasCycles,indexInSequence:indexInSequence,support:support[i],chordCoordinate:renderer.chordBinToCoordinate(vc,bin),color:vc.primaryColor,tooltip:tooltip})});if(!failed){linksInVegaData.push.apply(linksInVegaData,recordsToAdd)}++sequenceId});linksInVegaData.reverse();vc.data.push({name:"links",values:linksInVegaData});var chordsInVegaData=[];_.each(vc.sequenceOfUsedRootNotes,function(indexOfRootNote){_.each(vc.sequenceOfUsedChordTypes,function(indexOfChordType){var bin=renderer.parsedEncodedChordToBin(vc,[0,indexOfRootNote,indexOfChordType]);chordsInVegaData.push({rootNoteIndex:indexOfRootNote,rootNoteTitle:vc.titlesForRootNotes[indexOfRootNote],chordTypeIndex:indexOfChordType,chordTypeTitle:vc.titlesForChordTypes[indexOfChordType],chordCoordinate:renderer.chordBinToCoordinate(vc,bin)})})});vc.data.push({name:"chords",values:chordsInVegaData});if(vc.labelsForGroupsAreShown){var groupsForVega=[];if(vc.chordGrouppingIsByType){groupsForVega=chordsInVegaData.filter(function(chord){return chord.rootNoteIndex==vc.sequenceOfUsedRootNotes[0]})}else{groupsForVega=chordsInVegaData.filter(function(chord){return chord.chordTypeIndex==vc.sequenceOfUsedChordTypes[0]})}vc.data.push({name:"groups",values:groupsForVega})}var stepsInVegaData=_.range(0,vc.stepCount);vc.data.push({name:"steps",values:stepsInVegaData});vc.scales.push({name:"indexInSequence",domainMin:0,domainMax:vc.stepCount-1,point:true,round:true,range:[0,vc.height]});vc.scales.push({name:"strokeOpacity",type:"linear",domain:[0,data.self.coverage["ok_count"]*2],point:true,range:[0,1]});if(true||vc.guidesAreVisible){vc.marks.push({type:"rect",from:{data:"chords"},properties:{enter:{x:{field:"chordCoordinate"},y:{value:0},width:{value:1},height:{field:{group:"height"}},fill:{value:vc.colorForAxes}}}})}if(vc.nIsIncluded&&vc.guidesAreVisible){vc.marks.push({type:"rect",properties:{enter:{x:{field:{group:"width"}},y:{value:0},width:{value:"1"},height:{field:{group:"height"}},fill:{value:vc.colorForAxes}}}})}if(vc.guidesAreVisible){for(var right=0;right<2;right++){vc.marks.push({type:"rect",from:{data:"steps"},properties:{enter:{x:right?{field:{group:"width"}}:{value:-vc.sizeOfStepMark},width:{value:vc.sizeOfStepMark},y:{scale:"indexInSequence",field:"data"},height:{value:1},fill:{value:vc.colorForAxes}}}})}}vc.marks.push({type:"group",from:{data:"links",transform:[{type:"facet",groupby:["sequenceId"]}]},marks:[{type:"line",properties:{enter:{x:{field:"chordCoordinate"},y:{scale:"indexInSequence",field:"indexInSequence"},strokeOpacity:{scale:"strokeOpacity",field:"support"},stroke:{field:"color"},strokeWidth:{value:2}},update:{strokeOpacity:{scale:"strokeOpacity",field:"support"},stroke:{field:"color"}},hover:{strokeOpacity:{value:1},stroke:{value:"#000"}}}}]});vc.yOffsetForGroupLabels=-vc.padding.top+15;vc.yOffsetForChordLabels=-3;vc.xOffsetForGroupLabels=.5*vc.chordSize*((vc.chordGrouppingIsByType?vc.numberOfRootNotes:vc.numberOfChordTypes)-1);if(vc.labelsForGroupsAreShown){vc.marks.push({type:"text",from:{data:"groups"},properties:{enter:{x:{field:"chordCoordinate",offset:vc.xOffsetForGroupLabels},y:{value:vc.yOffsetForGroupLabels},text:{field:vc.chordGrouppingIsByType?"chordTypeTitle":"rootNoteTitle"},baseline:{value:"bottom"},align:{value:"center"},fill:{value:vc.colorForAxisLabels},font:{value:vc.fontFace},fontSize:{value:vc.fontSizeForLabelsInAxis}}}})}if(vc.nIsIncluded&&vc.labelsForGroupsAreShown){vc.marks.push({type:"text",properties:{enter:{y:{value:vc.labelsForChordsAreShown?vc.yOffsetForChordLabels:vc.yOffsetForGroupLabels},x:{field:{group:"width"}},text:{value:"N"},align:{value:"center"},baseline:{value:"bottom"},fill:{value:vc.colorForAxisLabels},font:{value:vc.fontFace},fontSize:{value:vc.fontSizeForLabelsInAxis}}}})}if(vc.labelsForChordsAreShown){vc.marks.push({type:"text",from:{data:"chords"},properties:{enter:{x:{field:"data.chordCoordinate",offset:0},y:{value:vc.yOffsetForChordLabels},text:{field:vc.chordGrouppingIsByType?"data.rootNoteTitle":"data.chordTypeTitle"},angle:{value:"-90"},baseline:{value:"middle"},fill:{value:vc.colorForAxisLabels},font:{value:vc.fontFace},fontSize:{value:vc.fontSizeForLabelsInSecondaryAxis}}}})}vc.marks.push({type:"image",from:{data:"dummy"},properties:{enter:{x:{value:0},width:{field:{group:"width"}},y:{field:{group:"height"}},height:{value:vc.padding.bottom+2},url:{value:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQIAAAAMCAYAAACJMrOUAAABFUlEQVRoge2PwW0CQQxFXQEUAoVAYaGT0Ek64Lq5QgMgLVJ4uezBspYsoxnCsPMPT1/y2B4/A5aOhctFqD3ynkvq/tL3yF/+TfobsAZWA2uXj7AK85G4L/bn/pc6X3qf/OU/C38DtglsXG5CrUZK3yt/+c/S34BdBh8ux/A9Y/1T77n7no385T8LfwM+/2Dvch9qJfpT53P3pyJ/+Tfhb8CXEKJtDDgIIdrGgA74vkPnsgu1V5B7T+q8/OXfhL8Bp3/k6PIYai0gf/lX6W/AGbgMnF2OcQn9kTgf+1Pfp/6f2pd7n/zl34S/AT1wHehd9qE29h6Z6s/dF6n9XvnL/y38Dfhx3FzeQq0Ez95f+33yl3+V/r9d8S8/zvVSHwAAAABJRU5ErkJggg=="},fill:{value:"#F00"}}}})}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"geography",inherit:"_",defaultVegaConfig:{comparisonMode:null,transformPropertiesByRegion:{planet:{defaultScale:500,translateProportionX:1/2,translateProportionY:1/2,circleSizeMult:20},africa:{defaultScale:100,translateProportionX:.2,translateProportionY:.5,circleSizeMult:50},europe:{defaultScale:70,translateProportionX:.2,translateProportionY:1.9,circleSizeMult:50}},symbolSize:20,internalSpaceOffset:6,colorForData:"#3182bd",padding:{top:10,left:10,bottom:10,right:10}},_formVC:function(vc,data){vc.width=vc.totalWidth-vc.padding.left-vc.padding.right;vc.height=vc.totalHeight-vc.padding.top-vc.padding.bottom;var countryStatsByCountryNumericCode={};var hist=data.self.stats?data.self.stats.hist:null;if(!hist){hist={counts:[],places:[]}}var countTotal=data.self.coverage.errors_count+data.self.coverage.failed_count;var countFailures=countTotal;for(var i=hist.counts.length-1;i>=0;--i){var countryNumericCode=vc.placeCountryNumericCodes[hist.places[i]];countTotal+=hist.counts[i];if(!countryNumericCode){countFailures+=hist.counts[i];continue}var country=vc.countriesByCountryNumericCode[countryNumericCode];var countryStats=countryStatsByCountryNumericCode[countryNumericCode];if(!countryStats){countryStats={numericCode:country[1],name:country[2],count:0};countryStatsByCountryNumericCode[countryNumericCode]=countryStats}countryStats.count+=hist.counts[i]}var countryStats=_.values(countryStatsByCountryNumericCode);for(var i=countryStats.length-1;i>=0;--i){var count=countryStats[i].count;var percentage=100*count/countTotal;countryStats[i].percentage=percentage}vc.data.push({name:"countries",values:vc.countries});vc.data.push({name:"countryOutlines",values:vc.countryOutlines,format:{type:"topojson",feature:"countries"}});vc.data.push({name:"countryStats",values:countryStats});var transformProperties=vc.transformPropertiesByRegion[vc.region];vc.data.push({name:"countrySummary",source:"countryOutlines",transform:[{type:"geopath",value:"data",projection:"eckert3",scale:100/transformProperties.defaultScale*vc.width,translate:[vc.width*transformProperties.translateProportionX,vc.height*transformProperties.translateProportionY]},{type:"lookup",on:"countryStats",onKey:"numericCode",keys:["id"],as:["cs"],"default":{count:0,percentage:0}},{type:"lookup",on:"countries",onKey:"1",keys:["id"],as:["tooltip"],"default":null}]});vc.scales.push({name:"color",type:"linear",domain:[0,.01,50],clamp:true,range:["#ccc","#c6dbef","#055893"]});vc.marks.push({type:"rect",properties:{enter:{x:{value:-vc.padding.left},y:{value:-vc.padding.top},fill:{value:"#fff"},y2:{field:{group:"height"},offset:vc.padding.left+vc.padding.right},x2:{field:{group:"width"},offset:vc.padding.top+vc.padding.bottom}}}});if(!vc.showCountriesAsCircles){vc.marks.push({type:"path",from:{data:"countrySummary"},properties:{enter:{stroke:{value:"#fff"},path:{field:"layout_path"}},update:{fill:{scale:"color",field:"cs.percentage"}},hover:{fill:{value:"#000"}}}})}else{vc.marks.push({type:"path",from:{data:"countrySummary"},properties:{enter:{stroke:{value:"#fff"},path:{field:"layout_path"}},update:{fill:{value:"#f0f0f0"}}}});vc.marks.push({type:"symbol",from:{data:"countrySummary",transform:[{type:"centroid",field:"layout_path"}]},properties:{enter:{size:{field:"cs.percentage",mult:transformProperties.circleSizeMult},opacity:{value:.5},x:{field:"centroid_x"},y:{field:"centroid_y"}},update:{fill:{value:vc.colorForData}},hover:{fill:{value:"#000"}}}})}}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"histogram",inherit:"_",defaultVegaConfig:{comparisonMode:null,dataDefinition:null,colorForFlats:"#666",colorForBars:0,ylabelDX:3,xlabelDY:-3,paddingWhenAxisLabelsAreShown:{top:5,left:40,bottom:20,right:10},paddingWhenAxisLabelsAreHidden:{top:5,left:10,bottom:1,right:10}},_formVC:function(vc,data){vc.enoughSpaceForAxisLabels=vc.totalWidth>200;vc.padding=vc.enoughSpaceForAxisLabels?vc.paddingWhenAxisLabelsAreShown:vc.paddingWhenAxisLabelsAreHidden;vc.width=vc.totalWidth-vc.padding.left-vc.padding.right;vc.height=vc.totalHeight-vc.padding.top-vc.padding.bottom;var xs;var valuesForBars0=[];var valuesForBars1=[];var valuesForBars2=[];var valuesForFlats0=[];var valuesForFlats1=[];var valuesForFlats2=[];var valueForHoris0=null;var valuesForOverlays0=[];var xsAreEdges=false;var xsAreCategories=false;if(vc.comparisonMode){xs=_.isFunction(vc.dataDefinition.forXs)?vc.dataDefinition.forXs(data.left):data.left[vc.dataDefinition.forXs]}else{xs=_.isFunction(vc.dataDefinition.forXs)?vc.dataDefinition.forXs(data.self):data.self[vc.dataDefinition.forXs]}if(vc.comparisonMode){valuesForBars1=_.isFunction(vc.dataDefinition.forBars)?vc.dataDefinition.forBars(data.left):data.left[vc.dataDefinition.forBars];valuesForBars2=_.isFunction(vc.dataDefinition.forBars)?vc.dataDefinition.forBars(data.right):data.right[vc.dataDefinition.forBars];if(vc.dataDefinition.forFlats){valuesForFlats1=_.isFunction(vc.dataDefinition.forFlats)?vc.dataDefinition.forFlats(data.left):data.left[vc.dataDefinition.forFlats];valuesForFlats2=_.isFunction(vc.dataDefinition.forFlats)?vc.dataDefinition.forFlats(data.right):data.right[vc.dataDefinition.forFlats]}}else{valuesForBars0=_.isFunction(vc.dataDefinition.forBars)?vc.dataDefinition.forBars(data.self):data.self[vc.dataDefinition.forBars];if(vc.dataDefinition.forFlats){valuesForFlats0=_.isFunction(vc.dataDefinition.forFlats)?vc.dataDefinition.forFlats(data.self):data.self[vc.dataDefinition.forFlats]}}if(vc.comparisonMode=="direct"){for(var i=0;i0){max=max*mult}return{name:name,range:"height",round:true,nice:false,domain:[Math.min(0,min),Math.max(0,max)]}};if(valuesForBars0.length){vc.scales.push(generateVegaYScale("scale0",valuesForBars0))}if(valuesForBars1.length){vc.scales.push(generateVegaYScale("scale1",valuesForBars1))}if(valuesForBars2.length){vc.scales.push(generateVegaYScale("scale2",valuesForBars2))}var barWidth=vc.width/xs.length+.5;var offsetForXRight=.5;var generateVegaMark=function(dataName,scale,type,color,opacity){var markProperties={opacity:{value:opacity},y:{scale:scale,field:"1"}};if(type=="bar"){markProperties["y2"]={scale:scale,value:0}}else{markProperties["height"]={value:2}}if(xsAreCategories){markProperties["x"]={scale:"scalex",field:"2"};markProperties["width"]={value:1};markProperties["width"]={scale:"scalex",band:true}}else if(xsAreEdges){markProperties["x"]={scale:"scalex",field:"2"};markProperties["x2"]={scale:"scalex",field:"3",offset:offsetForXRight}}else{markProperties["x"]={scale:"scalex",field:"2",offset:offsetForXRight/2};markProperties["width"]={value:barWidth}}return{type:"rect",from:{data:dataName},properties:{enter:markProperties,update:{fill:{value:color}},hover:{fill:{value:"black"}}}}};vc.marks.push({type:"rect",properties:{enter:{x:{value:-vc.padding.left},y:{value:-vc.padding.top},fill:{value:"#fff"},y2:{field:{group:"height"},offset:vc.padding.left+vc.padding.right},x2:{field:{group:"width"},offset:vc.padding.top+vc.padding.bottom}}}});if(valuesForBars0.length){vc.marks.push(generateVegaMark("bars0","scale0","bar",vc.colorForBars,1))}if(valuesForBars1.length){vc.marks.push(generateVegaMark("bars1","scale1","bar",vc.colorForBars,.5))}if(valuesForBars2.length){vc.marks.push(generateVegaMark("bars2","scale2","bar",vc.colorForBars,.5))}if(valuesForFlats0.length){vc.marks.push(generateVegaMark("flats0","scale0","flat",vc.colorForFlats,1))}if(valuesForFlats1.length){vc.marks.push(generateVegaMark("flats1","scale1","flat",vc.colorForFlats,.5))}if(valuesForFlats2.length){vc.marks.push(generateVegaMark("flats2","scale2","flat",vc.colorForFlats,.5))}vc.marks.push({type:"rect",properties:{enter:{fill:{value:vc.colorForAxes},x:{value:0},x2:{field:{group:"width"}},height:{value:1},y:{scale:valuesForBars0.length?"scale0":"scale1",value:0}}}});var generateVegaVerticalMark=function(x,color,dataName,strokeDash){return{type:"rect",from:{data:dataName},properties:{enter:{stroke:{value:vc.colorForAxisLabels},strokeWidth:{value:1},y:{value:-99},y2:{field:{group:"height"}},x:{scale:"scalex_round",value:x},width:{value:1},strokeDash:{value:strokeDash}}}}};if(xStdDev!==undefined&&xMean!==undefined){vc.data.push({name:"stdDev",values:[["tooltip_value",xStdDev,0,0,"standard deviation: "]]});vc.marks.push(generateVegaVerticalMark(xMean-xStdDev,"#ccc","stdDev",[1,1]));vc.marks.push(generateVegaVerticalMark(xMean+xStdDev,"#ccc","stdDev",[1,1]))}if(xMean!==undefined){vc.data.push({name:"mean",values:[["tooltip_value",xMean,0,0,"mean: ",xStdDev===0?" (standard deviation is zero)":undefined]]});vc.marks.push(generateVegaVerticalMark(xMean,"#666","mean",0))}var axisOpacity=vc.enoughSpaceForAxisLabels?{value:1}:{value:0};vc.axes.push({type:"x",scale:"scalex",properties:{axis:{stroke:{value:"#fff"},strokeWidth:{value:0}},grid:{stroke:{value:"#fff"},strokeOpacity:{value:.4},strokeWidth:{value:1}},ticks:{stroke:{value:"#fff"},strokeWidth:{value:0},opacity:axisOpacity},labels:{fill:{value:vc.colorForAxisLabels},dy:{value:vc.xlabelDY},font:{value:vc.fontFace},fontSize:{value:vc.fontSizeForLabelsInAxis},opacity:axisOpacity}}});if(valuesForBars0.length){vc.axes.push({type:"y",scale:"scale0",grid:vc.enoughSpaceForAxisLabels,zero:false,properties:{axis:{stroke:{value:"#fff"},strokeWidth:{value:0}},grid:{stroke:{value:"#fff"},strokeOpacity:{value:.4},opacity:{value:1}},ticks:{stroke:{value:"#fff"},strokeWidth:{value:0},opacity:axisOpacity},labels:{fill:{value:vc.colorForAxisLabels},fontSize:{value:vc.fontSizeForLabelsInAxis},dx:{value:vc.ylabelDX},font:{value:vc.fontFace},opacity:axisOpacity}}})}}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"similarity-matrix",inherit:"_",defaultVegaConfig:{comparisonMode:null,colorForData:"#3182bd",padding:{top:5,left:0,bottom:0,right:0}},_formVC:function(vc,data){vc.enoughSpaceForAxisLabels=vc.totalWidth>200;vc.width=vc.totalWidth-vc.padding.left-vc.padding.right;vc.height=vc.totalHeight-vc.padding.top-vc.padding.bottom;var stats={list:[],distance:[]};if(data.self.stats){data.self.stats=stats}var recordingCount=stats.list.length;var distance=stats.distance;var list=stats.list;var cellsInVegaData=[];var maxDistance=0;for(var column=0;column↕   "+list[column].label+"
"+GraphicsRenderingModule._formatNumberForTooltip(cellInVegaData.distance)}else{cellInVegaData.tooltip=list[row].label}cellsInVegaData.push(cellInVegaData);if(cellInVegaData.distance>maxDistance){maxDistance=cellInVegaData.distance}}}vc.data.push({name:"cells",values:cellsInVegaData});vc.scales.push({name:"column",domainMin:0,domainMax:recordingCount,point:true,round:true,range:[0,vc.width]});vc.scales.push({name:"row",domainMin:0,domainMax:recordingCount,point:true,round:true,range:[0,vc.height]});vc.scales.push({name:"fillOpacity",type:"linear",domain:[0,maxDistance],point:true,range:[0,1]});vc.marks.push({type:"rect",properties:{enter:{x:{value:-vc.padding.left},y:{value:-vc.padding.top},fill:{value:"#fff"},y2:{field:{group:"height"},offset:vc.padding.left+vc.padding.right},x2:{field:{group:"width"},offset:vc.padding.top+vc.padding.bottom}}}});vc.marks.push({type:"rect",from:{data:"cells"},properties:{enter:{x:{field:"column",scale:"column"},x2:{field:"nextColumn",scale:"column",offset:-1},y:{field:"row",scale:"row"},y2:{field:"nextRow",scale:"row",offset:-1},fill:{value:vc.colorForData},fillOpacity:{field:"distance",scale:"fillOpacity"}}}})}})})},Logger); +"use strict";App.module("GraphicsRenderingModule",function(GraphicsRenderingModule,App,Backbone,Marionette,$,_,Logger){GraphicsRenderingModule.addInitializer(function(options){GraphicsRenderingModule.registerRenderer({id:"similarity-plane",inherit:"_",defaultVegaConfig:{comparisonMode:null,symbolSize:20,internalSpaceOffset:6,colorForData:"#3182bd",padding:{top:10,left:10,bottom:10,right:10}},_formVC:function(vc,data){vc.enoughSpaceForAxisLabels=vc.totalWidth>200;vc.width=vc.totalWidth-vc.padding.left-vc.padding.right;vc.height=vc.totalHeight-vc.padding.top-vc.padding.bottom;var stats={mds:[],list:[]};if(data.self.stats){data.self.stats=stats}var recordingCount=stats.list.length;var mds=stats.mds;var list=stats.list;var pointsInVegaData=[];for(var i=0;i1?times*2-1:1;var interval=setInterval(function(){if(currentCheckNumber==$item.data("randomNumberForFlashCheck")){if(timerCounter%2){$item.removeClass("main-menu-bar__item_flashing")}else{$item.addClass("main-menu-bar__item_flashing")}}else{if(_.isFunction(callback)){callback.call($item,true)}clearInterval(interval)}if(!--timerCounter){if(_.isFunction(callback)){callback.call($item,false)}clearInterval(interval)}},_this.options.flashingSpeed)},_flashModeChangerThreeTimes:function(){var _this=this;_this.flashItem("change-mode",3)},_updateUndoRedo:function(){var _this=this;var stateHistory=App.context.get("stateHistory");_this._$itemUndo.setMod("main-menu-bar","item","state",stateHistory.canUndo()?"enabled":false);_this._$itemRedo.setMod("main-menu-bar","item","state",stateHistory.canRedo()?"enabled":false)},_updateModeChanger:function(){var _this=this;var state=App.context.get("state");var musicRecordingsGridIsShown=!!state.get("musicRecordingsGridIsShown");if(_this._cachedMusicRecordingsGridIsShown!==musicRecordingsGridIsShown){_this._$itemChangeMode.setMod("main-menu-bar","item","mode",musicRecordingsGridIsShown?"2collections":"2recordings");if(musicRecordingsGridIsShown){_this.stopListening(state.get("musicRecordingGrid"));_this.listenTo(state.get("musicCollectionGrid"),"change",_this._flashModeChangerThreeTimes)}else{_this.stopListening(state.get("musicCollectionGrid"));_this.listenTo(state.get("musicRecordingGrid"),"change",_this._flashModeChangerThreeTimes)}_this._cachedMusicRecordingsGridIsShown=musicRecordingsGridIsShown}}})},Logger); +"use strict";App.module("MainMenuModule",function(MainMenuModule,App,Backbone,Marionette,$,_,Logger){MainMenuModule.startWithParent=false;var defaultModuleOptions={};var moduleOptions;var assertModuleIsInitialized=function(){if(!$bar){throw"MainMenuModule has not been initialized"}};MainMenuModule.addInitializer(function(options){moduleOptions=_.extend(defaultModuleOptions,options);MainMenuModule.logger=Logger.get("MainMenuModule");MainMenuModule.logger.setLevel(Logger.DEBUG);this.barView=new App.MainMenuModule.MainMenuBarView});MainMenuModule.flashItem=function(item,times,callback){this.barView.flashItem(item,times,callback)}},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.startWithParent=false;var defaultModuleOptions={};var assertModuleIsInitialized=function(){if(!logger){throw"MainRegionModule has not been initialized"}};MainRegionModule.addInitializer(function(options){MainRegionModule.moduleOptions=_.extend(defaultModuleOptions,options);MainRegionModule.logger=Logger.get("MainRegionModule");MainRegionModule.logger.setLevel(Logger.DEBUG)})},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.MainRegionView=Backbone.View.extend({initialize:function(options){var _this=this;_this.options=_.defaults(options||{},this.options);var $collectionsGridEl=_this.$(".config-grid");var $recordingsGridEl=$collectionsGridEl.clone();$recordingsGridEl.appendTo(_this.el);_this.options.state.on("change",function(){_this.render()});_this._musicCollectionConfigGridView=new MainRegionModule.ConfigGridView({el:$collectionsGridEl,state:_this.options.state,configGrid:_this.options.state.get("musicCollectionGrid"),parentState:_this.options.state,parentContainerElement:_this.el});_this._musicRecordingConfigGridView=new MainRegionModule.ConfigGridView({el:$recordingsGridEl,state:_this.options.state,configGrid:_this.options.state.get("musicRecordingGrid"),parentState:_this.options.state,parentContainerElement:_this.el});_this._$flipper=$.bem.generateElement("main-region","flipper");_this._$flipper.append(_this._musicRecordingConfigGridView.$ghost,_this._musicCollectionConfigGridView.$ghost);_this._$flipperContainer=$.bem.generateElement("main-region","flipper-container");_this._$flipperContainer.append(_this._$flipper);_this._$flipper.on("transitionend MSTransitionEnd webkitTransitionEnd oTransitionEnd",function(){_this._stopFlipping()});_this.render(true,true)},render:function(deep,instant){var _this=this;var musicRecordingsGridNeedsToBeShown=!!_this.options.state.get("musicRecordingsGridIsShown");var gridViewToShow=musicRecordingsGridNeedsToBeShown?_this._musicRecordingConfigGridView:_this._musicCollectionConfigGridView;var gridViewToHide=!musicRecordingsGridNeedsToBeShown?_this._musicRecordingConfigGridView:_this._musicCollectionConfigGridView;if(!gridViewToShow.el.getAttribute("data-active")){if(!instant){if(!_this.isSwitchingBetweenGrids()){_this._$flipper.removeClass("main-region__flipper_animating");_this._$flipper.setMod("main-region","flipper","to",!musicRecordingsGridNeedsToBeShown?"recording":"collection");_this._$flipper.addClass("main-region__flipper_animating");_this._$flipperContainer.appendTo(_this.el)}setTimeout(function(){_this._$flipper.setMod("main-region","flipper","to",musicRecordingsGridNeedsToBeShown?"recording":"collection")},10)}gridViewToHide.$el.attr("data-active",null).detach();gridViewToShow.$el.attr("data-active","1").appendTo(_this.$el);gridViewToShow.render(true,true)}else if(deep){gridViewToShow.render(deep,instant)}},isSwitchingBetweenGrids:function(){var _this=this;return _this._$flipperContainer.parent().length},_stopFlipping:function(){var _this=this;_this._$flipperContainer.detach()}})},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.ConfigGridView=Backbone.View.extend({options:{state:null,configGrid:null,parentState:null,parentContainerElement:null},_cachedConfigGridType:null,initialize:function(options){var _this=this;_this.options=_.defaults(options||{},this.options);_this._cachedConfigGridType=_this.options.configGrid.getType();_this.$el.setMod("config-grid","type",_this._cachedConfigGridType);_this.$(".config-grid__utils").empty();_this._$header=_this.$(".config-grid__header");_this._$header.html($("#config-grid__header_type_"+_this._cachedConfigGridType).text());_this._$header.click(function(){_this.options.configGrid.set({selectedEntityConfigClientId:null,selectedViewConfigClientId:null})});_this.$ghost=_this.$el.clone();_this.cellsView=new MainRegionModule.ConfigGridCellsView({state:_this.options.state,configGrid:_this.options.configGrid,el:_this.$(".config-grid-cells"),parentConfigGridView:_this});_this.entityPanelView=new MainRegionModule.ConfigGridPanelView({el:_this.$(".config-grid-panel_dimension_entity"),state:_this.options.state,configGrid:_this.options.configGrid,dimension:"entity",parentConfigGridView:_this});_this.viewPanelView=new MainRegionModule.ConfigGridPanelView({el:_this.$(".config-grid-panel_dimension_view"),state:_this.options.state,configGrid:_this.options.configGrid,dimension:"view",parentConfigGridView:_this});_this.cellsView.on("change-positions-of-selected-headers",_.throttle(function(entityHeaderLeft,entityHeaderWidth,viewHeaderTop,viewHeaderHeight){_this.entityPanelView.updateRadiusFixer(entityHeaderLeft,entityHeaderWidth);_this.viewPanelView.updateRadiusFixer(viewHeaderTop,viewHeaderHeight)},100))},render:function(deep,instant){var _this=this;if(deep){_this.cellsView.render(deep,instant);_this.entityPanelView.render(deep,instant);_this.viewPanelView.render(deep,instant)}},isVisible:function(){return!!this.el.getAttribute("data-active")},scrollAccordingToSelection:function(deep,instant){this.cellsView.scrollAccordingToSelection(deep,instant)},ignoreAxisOnNextScroll:function(x,y){this.cellsView._ignoreXOnNextScroll=!!x;this.cellsView._ignoreYOnNextScroll=!!y}})},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.ConfigGridChildView=Backbone.View.extend({renderIfParentConfigGridIsVisible:function(){if(this.options.parentConfigGridView.isVisible()){this.render()}}})},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.ConfigGridCellsView=MainRegionModule.ConfigGridChildView.extend({options:{state:null,configGrid:null,parentConfigGridView:null,scrollAnimationMinSpeed:100,scrollAnimationBaseSpeed:400,scrollAnimationBaseDistance:500,desiredPaddingAroundVisInstanceOnScroll:{left:35,top:20,right:35,bottom:33},enableFixedHeaders:true},_logger:null,_$entityHeadersContainer:null,_$entityHeadersBlind:null,_$viewHeadersContainer:null,_$viewHeadersBlind:null,_$visInstancesContainer:null,_$cornerBlind:null,_$fixedContainer:null,_$entityAdder:null,_$viewAdder:null,_distanceBetweenEntities:10,_distanceBetweenViews:10,_viewHeaderHeight:0,_entityAdderWidth:0,_viewAdderHeight:0,_cachedMinSpaceWidth:0,_cachedMinSpaceHeight:0,_spacePadding:null,_scrollLeftBeforeLatestSelectionUpdate:0,_scrollTopBeforeLatestSelectionUpdate:0,_ignoreXOnNextScroll:false,_ignoreYOnNextScroll:false,_latestChangeWasAReset:false,_cachedScrollPosGridHash:null,_cachedScrollPosSelection:null,_cachedScrollPosX:null,_cachedScrollPosY:null,_cachedSelectedEntityConfigClientId:null,_cachedSelectedViewConfigClientId:null,_cachedEntityHeaderViewsByClientId:{},_cachedViewHeaderViewsByClientId:{},_cachedVisInstanceViewsByClientIdPair:{},_cachedEntityConfigClientIds:null,_cachedViewConfigClientIds:null,_cachedEntityWidth:null,_cachedViewContentHeights:null,initialize:function(options){var _this=this;_this._logger=Logger.get("ConfigGridCellsView");_this.options=_.defaults(options||{},this.options);if(_this.options.enableFixedHeaders===null){_this.options.enableFixedHeaders=navigator.userAgent.indexOf("afari")>=0&&navigator.userAgent.indexOf("Chrom")==-1||navigator.userAgent.indexOf("MSIE")>=0||navigator.userAgent.indexOf("MATM")>=0||navigator.userAgent.indexOf("Trident")>=0}var configGridType=_this.options.configGrid.getType();_this.$el.empty();_this._$entityHeadersContainer=$.bem.generateElement("config-grid-cells","entity-headers-container");_this._$entityHeadersBlind=$.bem.generateElement("config-grid-cells","entity-headers-blind");_this._$entityHeadersContainer.append(_this._$entityHeadersBlind);_this._$viewHeadersContainer=$.bem.generateElement("config-grid-cells","view-headers-container");_this._$viewHeadersBlind=$.bem.generateElement("config-grid-cells","view-headers-blind");_this._$viewAdder=$.bem.generateElement("config-grid-cells","view-header",["kind_adder"]);_this._$viewHeadersContainer.append(_this._$viewHeadersBlind,_this._$viewAdder);_this._$visInstancesContainer=$.bem.generateElement("config-grid-cells","vis-instances-container");_this._$cornerBlind=$.bem.generateElement("config-grid-cells","corner-blind");_this._$space=$.bem.generateElement("config-grid-cells","space");_this._$containerOfScrollable=$.bem.generateElement("config-grid-cells","container",["position_scrollable"]);_this._$containerOfFixed=$.bem.generateElement("config-grid-cells","container",["position_fixed"]);if(configGridType=="collection"){_this._$entityAdder=$.bem.generateElement("config-grid-cells","entity-header",["kind_adder"]);var $entityAdderBackground=$.bem.generateElement("config-grid-cells","entity-header-background");var $entityAdderLabel=$.bem.generateElement("config-grid-cells","entity-header-label");$entityAdderLabel.html(Backbone.Marionette.TemplateCache.get("#config-grid_collection__entity-adder-label"));_this._$entityAdder.append($entityAdderBackground,$entityAdderLabel);_this._$entityHeadersContainer.append(_this._$entityAdder);_this._$entityAdder.click(function(){_this.options.configGrid.addEntityAndSelectIt(new App.ContextModule.Config)})}else{_this._$entityAdder=$()}_this._$viewAdder=$.bem.generateElement("config-grid-cells","view-header",["kind_adder"]);var $viewAdderBackground=$.bem.generateElement("config-grid-cells","view-header-background");var $viewAdderLabel=$.bem.generateElement("config-grid-cells","view-header-label");$viewAdderLabel.html(Backbone.Marionette.TemplateCache.get("#config-grid__view-adder-label"));_this._$viewAdder.append($viewAdderBackground,$viewAdderLabel);_this._$viewHeadersContainer.append(_this._$viewAdder);_this._$viewAdder.click(function(){_this.options.configGrid.addViewAndSelectIt(new App.ContextModule.Config)});_this._$entityHeadersContainer.append();_this._$viewHeadersContainer.append();_this._$space.append(_this._$visInstancesContainer,_this._$entityHeadersContainer,_this._$viewHeadersContainer,_this._$cornerBlind);_this._$containerOfScrollable.append(_this._$space);_this.$el.append(_this._$containerOfScrollable,_this._$containerOfFixed);_this._viewHeaderHeight=_this._$viewAdder.height();_this._entityAdderWidth=_this._$entityAdder.width();_this._viewAdderHeight=_this._viewHeaderHeight;if(!_this._entityAdderWidth){_this._entityAdderWidth=-_this._distanceBetweenEntities}_this._spacePadding={};var interval;var setSpaceInterval=function(){if(_this._$space.css("padding-top")){_this._spacePadding.top=parseInt(_this._$space.css("padding-top"),10);_this._spacePadding.right=parseInt(_this._$space.css("padding-right"),10);_this._spacePadding.bottom=parseInt(_this._$space.css("padding-bottom"),10);_this._spacePadding.left=parseInt(_this._$space.css("padding-left"),10);_this._spacePadding.h=_this._spacePadding.left+_this._spacePadding.right;_this._spacePadding.v=_this._spacePadding.top+_this._spacePadding.bottom;_this._updateDemensionsForContainerOfFixed();clearInterval(interval)}};if(_this._$space.css("padding-top")){setSpaceInterval()}else{interval=setInterval(setSpaceInterval,50)}_this.listenTo(_this.options.configGrid,"change",_this.renderIfParentConfigGridIsVisible);var isSafari=navigator.userAgent.indexOf("afari")>=0;var isChrome=navigator.userAgent.indexOf("rome")>=0;var isScrolling=false;if(_this.options.enableFixedHeaders){_this._$containerOfScrollable.mousewheel(_.debounce(function(event){_this._toggleFixedHeadersIfNeeded(true);var visInstanceViews=_.values(_this._cachedVisInstanceViewsByClientIdPair);for(var i=visInstanceViews.length-1;i>=0;--i){visInstanceViews[i].cancelPointerHighlights()}App.TooltipModule.update();if(isSafari||isChrome){_this._$containerOfScrollable.scrollLeft(_this._$containerOfScrollable.scrollLeft()+event.deltaX);_this._$containerOfScrollable.scrollTop(_this._$containerOfScrollable.scrollTop()-event.deltaY);event.preventDefault()}},50,true));_this._$containerOfScrollable.mousewheel(_.debounce(function(event){if(!isScrolling){_this._toggleFixedHeadersIfNeeded(false)}},200))}_this._$containerOfScrollable.scroll(function(event){if(!isScrolling){isScrolling=true}_this._toggleFixedHeadersIfNeeded(true)});_this._$containerOfScrollable.scroll(_.debounce(function(event){_this._toggleFixedHeadersIfNeeded(false);_this._reviseSpaceSize();isScrolling=false;_this._updateCachedScroll()},200));$(window).resize(_.throttle(function(){_this._reviseSpaceSize();_this._updateDemensionsForContainerOfFixed()},100));_this._toggleFixedHeadersIfNeeded(false);_this._updateDemensionsForContainerOfFixed();_this._cachedScrollPosGridHash=App.DataModule.Storage.getStrCache(MainRegionModule,_.str.sprintf("scroll-pos-grid-hash_%s",configGridType));_this._cachedScrollPosSelection=App.DataModule.Storage.getStrCache(MainRegionModule,_.str.sprintf("scroll-pos-selection_%s",configGridType));_this._cachedScrollPosX=1*App.DataModule.Storage.getStrCache(MainRegionModule,_.str.sprintf("scroll-pos-x_%s",configGridType));_this._cachedScrollPosY=1*App.DataModule.Storage.getStrCache(MainRegionModule,_.str.sprintf("scroll-pos-y_%s",configGridType));$(window).unload(function(){App.DataModule.Storage.setStrCache(MainRegionModule,_.str.sprintf("scroll-pos-grid-hash_%s",configGridType),_this._cachedScrollPosGridHash);App.DataModule.Storage.setStrCache(MainRegionModule,_.str.sprintf("scroll-pos-selection_%s",configGridType),_this._cachedScrollPosSelection);App.DataModule.Storage.setStrCache(MainRegionModule,_.str.sprintf("scroll-pos-x_%s",configGridType),""+_this._cachedScrollPosX);App.DataModule.Storage.setStrCache(MainRegionModule,_.str.sprintf("scroll-pos-y_%s",configGridType),""+_this._cachedScrollPosY)})},render:function(deep,instant){var _this=this;_this._updateLayout(deep,instant);_this._updateSelection(deep,instant);if(deep){_this._reviseSpaceSize();_this._updateDemensionsForContainerOfFixed()}_this._adjustToScrollPos(deep,instant);_this.scrollAccordingToSelection(deep,instant);if(deep){var entityHeaderViews=_.values(_this._cachedEntityHeaderViewsByClientId);for(var i=entityHeaderViews.length-1;i>=0;--i){entityHeaderViews[i].render(deep,instant)}var viewHeaderViews=_.values(_this._cachedViewHeaderViewsByClientId);for(var i=viewHeaderViews.length-1;i>=0;--i){viewHeaderViews[i].render(deep,instant)}var visInstanceViews=_.values(_this._cachedVisInstanceViewsByClientIdPair);for(var i=visInstanceViews.length-1;i>=0;--i){visInstanceViews[i].render(deep,instant)}}},getEntityWidth:function(){var _this=this;return(_this.options.configGrid.get("entityWidth")||App.options.defaultEntityWidth)*1},_updateLayout:function(deep,instant){var _this=this;var entityListHasChanged=false;var viewListHasChanged=false;var newEntityConfigs=_this.options.configGrid.get("entityConfigs");var newViewConfigs=_this.options.configGrid.get("viewConfigs");var newEntityConfigClientIds=_.pluck(newEntityConfigs.models,"cid");var newViewConfigClientIds=_.pluck(newViewConfigs.models,"cid");_this._scrollLeftBeforeLatestLayoutUpdate=_this.$el.scrollLeft();_this._scrollTopBeforeLatestLayoutUpdate=_this.$el.scrollTop();if(_this._cachedEntityConfigClientIds===null){entityListHasChanged=true;viewListHasChanged=true;_this._cachedEntityConfigClientIds=[];_this._cachedViewConfigClientIds=[]}var createdEntityConfigClientIds=_.difference(newEntityConfigClientIds,_this._cachedEntityConfigClientIds);var createdViewConfigClientIds=_.difference(newViewConfigClientIds,_this._cachedViewConfigClientIds);var removedEntityConfigClientIds=_.difference(_this._cachedEntityConfigClientIds,newEntityConfigClientIds);var removedViewConfigClientIds=_.difference(_this._cachedViewConfigClientIds,newViewConfigClientIds);_this._latestChangeWasAReset=false;if(createdEntityConfigClientIds.length+removedEntityConfigClientIds.length==1){_this._ignoreYOnNextScroll=true}if(createdViewConfigClientIds.length+removedViewConfigClientIds.length==1){_this._ignoreXOnNextScroll=true}if(!_.isEqual(newEntityConfigClientIds,_this._cachedEntityConfigClientIds)){entityListHasChanged=true}if(!_.isEqual(newViewConfigClientIds,_this._cachedViewConfigClientIds)){viewListHasChanged=true}if(entityListHasChanged&&createdEntityConfigClientIds.length+removedEntityConfigClientIds.length>1||viewListHasChanged&&createdViewConfigClientIds.length+removedViewConfigClientIds.length>1){_this._latestChangeWasAReset=true;_this._ignoreXOnNextScroll=false;_this._ignoreYOnNextScroll=false}var newEntityHeaderViewsByClientId=_this._cachedEntityHeaderViewsByClientId;var newViewHeaderViewsByClientId=_this._cachedViewHeaderViewsByClientId;var newVisInstanceViewsByClientIdPair=_this._cachedVisInstanceViewsByClientIdPair;var viewHeaderViewsToRender=[];var entityHeaderViewsToRender=[];var visInstanceViewsToRender=[];if(entityListHasChanged){newEntityHeaderViewsByClientId={};for(var i=0;i=0;--i){_this._cachedEntityHeaderViewsByClientId[removedEntityConfigClientIds[i]].remove();App.dynamicDerivedConfigDataProvider.retire(removedEntityConfigClientIds[i])}}else{newEntityHeaderViewsByClientId=_this._cachedEntityHeaderViewsByClientId}if(viewListHasChanged){newViewHeaderViewsByClientId={};for(var i=0;i=0;--i){_this._cachedViewHeaderViewsByClientId[removedViewConfigClientIds[i]].remove();App.dynamicDerivedConfigDataProvider.retire(removedViewConfigClientIds[i])}}else{newViewHeaderViewsByClientId=_this._cachedViewHeaderViewsByClientId}if(viewListHasChanged||entityListHasChanged){newVisInstanceViewsByClientIdPair={};for(var i=0;i=0;--i){for(var j=removedViewConfigClientIds.length-1;j>=0;--j){var visInstanceToRemove=_this._cachedVisInstanceViewsByClientIdPair[this._cachedEntityConfigClientIds[i]+removedViewConfigClientIds[j]];visInstanceToRemove.remove()}}for(var i=removedEntityConfigClientIds.length-1;i>=0;--i){for(var j=this._cachedViewConfigClientIds.length-1;j>=0;--j){var visInstanceToRemove=_this._cachedVisInstanceViewsByClientIdPair[removedEntityConfigClientIds[i]+this._cachedViewConfigClientIds[j]];if(visInstanceToRemove){visInstanceToRemove.remove()}}}}var viewHeightsHaveChanged=false;var entityWidthHasChanged=false;var entityWidth=_this.getEntityWidth();var viewContentHeights=[];for(var row=0;row=0;--row){var currentViewDimensions=newViewDimensions[row];var viewHeaderView=newViewHeaderViewsByClientId[currentViewDimensions[0]];viewHeaderView.$el.css("top",currentViewDimensions[1]).attr("data-top",currentViewDimensions[1]).attr("data-total-height",currentViewDimensions[2]+_this._viewHeaderHeight);viewHeaderView.setSize(currentViewDimensions[2])}for(var col=newEntityDimensions.length-1;col>=0;--col){var currentEntityDimensions=newEntityDimensions[col];var entityHeaderView=newEntityHeaderViewsByClientId[currentEntityDimensions[0]];entityHeaderView.$el.css("left",currentEntityDimensions[1]).attr("data-left",currentEntityDimensions[1]).attr("data-width",currentEntityDimensions[2]);entityHeaderView.setSize(currentEntityDimensions[2]);for(var row=newViewDimensions.length-1;row>=0;--row){var currentViewDimensions=newViewDimensions[row];var visInstanceView=newVisInstanceViewsByClientIdPair[currentEntityDimensions[0]+currentViewDimensions[0]];visInstanceView.$el.css({left:currentEntityDimensions[1],top:currentViewDimensions[1]+viewHeaderHeight});visInstanceView.setSize(currentEntityDimensions[2],currentViewDimensions[2])}}var needToResizeSpace=false;if(x!=_this._$entityAdder.css("left")){_this._$entityAdder.css("left",x);needToResizeSpace=true}if(y!=_this._$viewAdder.css("top")){_this._$viewAdder.css("top",y);needToResizeSpace=true}if(needToResizeSpace){_this._cachedMinSpaceWidth=x+_this._entityAdderWidth;_this._cachedMinSpaceHeight=y+_this._viewAdderHeight;_this._reviseSpaceSize(!_this._latestChangeWasAReset)}}if(entityListHasChanged){_this._cachedEntityHeaderViewsByClientId=newEntityHeaderViewsByClientId;_this._cachedEntityConfigClientIds=newEntityConfigClientIds}if(viewListHasChanged){_this._cachedViewHeaderViewsByClientId=newViewHeaderViewsByClientId;_this._cachedViewConfigClientIds=newViewConfigClientIds}if(viewListHasChanged||entityListHasChanged){_this._cachedVisInstanceViewsByClientIdPair=newVisInstanceViewsByClientIdPair}if(!deep&&entityHeaderViewsToRender){for(var i=entityHeaderViewsToRender.length-1;i>=0;--i){entityHeaderViewsToRender[i].render()}}if(!deep&&viewHeaderViewsToRender){for(var i=viewHeaderViewsToRender.length-1;i>=0;--i){viewHeaderViewsToRender[i].render()}}if(!deep&&visInstanceViewsToRender){for(var i=visInstanceViewsToRender.length-1;i>=0;--i){visInstanceViewsToRender[i].render()}}if(viewListHasChanged||entityListHasChanged){var destroyedVisInstanceViews=_.difference(_.values(this._cachedVisInstanceViewsByClientIdPair),_.values(newVisInstanceViewsByClientIdPair));for(var i=destroyedVisInstanceViews.length-1;i>=0;--i){destroyedVisInstanceViews[i].remove()}}},_updateSelection:function(deep,instant){var _this=this;var selectedEntityConfig=_this.options.configGrid.getSelectedEntityConfig();var selectedViewConfig=_this.options.configGrid.getSelectedViewConfig();var selectedEntityConfigClientId=selectedEntityConfig?selectedEntityConfig.getClientId():null;var selectedViewConfigClientId=selectedViewConfig?selectedViewConfig.getClientId():null;if(_this._cachedSelectedEntityConfigClientId!==selectedEntityConfigClientId){_this._cachedSelectedEntityConfigClientId=selectedEntityConfigClientId}if(_this._cachedSelectedViewConfigClientId!==selectedViewConfigClientId){_this._cachedSelectedViewConfigClientId=selectedViewConfigClientId}},scrollAccordingToSelection:function(deep,instant){var _this=this;return;var entityConfigClientId=_this._cachedSelectedEntityConfigClientId;var viewConfigClientId=_this._cachedSelectedViewConfigClientId;var dimensions={left:0,top:0,width:0,height:0};if(entityConfigClientId){dimensions.left=parseInt(_this._cachedEntityHeaderViewsByClientId[entityConfigClientId].el.getAttribute("data-left"),10);dimensions.width=parseInt(_this._cachedEntityHeaderViewsByClientId[entityConfigClientId].el.getAttribute("data-width"),10)}if(viewConfigClientId){dimensions.top=parseInt(_this._cachedViewHeaderViewsByClientId[viewConfigClientId].el.getAttribute("data-top"),10);dimensions.height=parseInt(_this._cachedViewHeaderViewsByClientId[viewConfigClientId].el.getAttribute("data-total-height"),10)}var desiredPaddingAroundVisInstanceOnScroll=_this.options.desiredPaddingAroundVisInstanceOnScroll;var spacePadding=_this._spacePadding;var targetScrollRange={leftMax:dimensions.left-desiredPaddingAroundVisInstanceOnScroll.left,topMax:dimensions.top-desiredPaddingAroundVisInstanceOnScroll.top-_this._viewHeaderHeight,leftMin:dimensions.left+desiredPaddingAroundVisInstanceOnScroll.right+dimensions.width-_this._$containerOfScrollable[0].clientWidth+spacePadding.left,topMin:dimensions.top+desiredPaddingAroundVisInstanceOnScroll.bottom+dimensions.height-_this._$containerOfScrollable[0].clientHeight+spacePadding.top};var currentScroll={left:_this._scrollLeftBeforeLatestLayoutUpdate==null?_this._$containerOfScrollable.scrollLeft():_this._scrollLeftBeforeLatestLayoutUpdate,top:_this._scrollTopBeforeLatestLayoutUpdate==null?_this._$containerOfScrollable.scrollTop():_this._scrollTopBeforeLatestLayoutUpdate};var targetScrollLeft=currentScroll.left;var targetScrollTop=currentScroll.top;if(_this._latestChangeWasAReset){_this._cachedScrollPosSelection=null;targetScrollLeft=0;targetScrollTop=0}var currentGridHash=_this.getEntityWidth()+"~"+_this._cachedEntityConfigClientIds.join("|")+"~"+_this._cachedViewConfigClientIds.join("|");if(_this._cachedScrollPosGridHash===currentGridHash&&_this._cachedScrollPosSelection===""+entityConfigClientId+viewConfigClientId){targetScrollLeft=_this._cachedScrollPosX;targetScrollTop=_this._cachedScrollPosY;_this._cachedScrollPosSelection=""}else{if(!_this._ignoreXOnNextScroll){if(targetScrollLefttargetScrollRange.leftMax){targetScrollLeft=targetScrollRange.leftMax}}if(!_this._ignoreYOnNextScroll){if(targetScrollToptargetScrollRange.topMax){targetScrollTop=targetScrollRange.topMax}}if(targetScrollLeft<0){targetScrollLeft=0}if(targetScrollTop<0){targetScrollTop=0}}var scrollDiffX=targetScrollLeft-currentScroll.left;var scrollDiffY=targetScrollTop-currentScroll.top;if(!entityConfigClientId&&!viewConfigClientId&&!_this._latestChangeWasAReset){_this._updateCachedScroll()}else if(instant||_this._latestChangeWasAReset){_this._$containerOfScrollable.stop(true,true);_this._$containerOfScrollable.scrollLeft(targetScrollLeft);_this._$containerOfScrollable.scrollTop(targetScrollTop);_this._updateCachedScroll();_this._reviseSpaceSize()}else{_this._$containerOfScrollable.stop(true,false);if(_this._scrollLeftBeforeLatestLayoutUpdate!==null){_this._$containerOfScrollable.scrollLeft(_this._scrollLeftBeforeLatestLayoutUpdate);_this._$containerOfScrollable.scrollTop(_this._scrollTopBeforeLatestLayoutUpdate)}_this._$containerOfScrollable.animate({scrollLeft:targetScrollLeft,scrollTop:targetScrollTop},_this.options.scrollAnimationMinSpeed+Math.min(Math.max(Math.abs(scrollDiffX),Math.abs(scrollDiffY)),_this.options.scrollAnimationBaseDistance)/_this.options.scrollAnimationBaseDistance*_this.options.scrollAnimationBaseSpeed,function(){_this._reviseSpaceSize()})}_this._ignoreXOnNextScroll=false;_this._ignoreYOnNextScroll=false},getPositionsOfSelectedHeaders:function(){var _this=this;var result=[];var selectedEntityHeaderView=_this._cachedEntityHeaderViewsByClientId[_this._cachedSelectedEntityConfigClientId];var selectedViewHeaderView=_this._cachedViewHeaderViewsByClientId[_this._cachedSelectedViewConfigClientId];if(selectedEntityHeaderView){var $selectedEntityHeader=selectedEntityHeaderView.$el;result.push(parseInt($selectedEntityHeader.css("left"),10)-_this._$containerOfScrollable.scrollLeft(),parseInt($selectedEntityHeader[0].style.width,10))}else{result.push(null,null)}if(selectedViewHeaderView){var $selectedViewHeader=selectedViewHeaderView.$el;result.push(parseInt($selectedViewHeader.css("top"),10)-_this._$containerOfScrollable.scrollTop(),_this._viewHeaderHeight)}else{result.push(null,null)}return result},_updateCachedScroll:function(){var _this=this;_this._cachedScrollPosGridHash=_this.getEntityWidth()+"~"+_this._cachedEntityConfigClientIds.join("|")+"~"+_this._cachedViewConfigClientIds.join("|");_this._cachedScrollPosSelection=""+_this._cachedSelectedEntityConfigClientId+_this._cachedSelectedViewConfigClientId;_this._cachedScrollPosX=_this._$containerOfScrollable.scrollLeft();_this._cachedScrollPosY=_this._$containerOfScrollable.scrollTop()},_toggleFixedHeadersIfNeeded:function(trueOrFalse){var _this=this;if(_this.options.enableFixedHeaders&&trueOrFalse==true){if(!_this._$containerOfFixed[0].childNodes.length){_this._$containerOfFixed.append(_this._$visInstancesContainer,_this._$entityHeadersContainer,_this._$viewHeadersContainer,_this._$cornerBlind);_this._$cornerBlind.css({transform:"translate(0px, 0px)"});_this._$containerOfFixed.show()}}else{_this._$containerOfFixed.hide();_this._$space.append(_this._$visInstancesContainer,_this._$entityHeadersContainer,_this._$viewHeadersContainer,_this._$cornerBlind);_this._$entityHeadersBlind.css({transform:"translate(0px, 0px)"});_this._$visInstancesContainer.css({transform:"translate(0px, 0px)"})}_this._adjustToScrollPos()},_adjustToScrollPos:function(){var _this=this;if(_this._scrollLeftBeforeLatestLayoutUpdate!==null){_this._scrollLeftBeforeLatestLayoutUpdate=null;_this._scrollTopBeforeLatestLayoutUpdate=null}var scrollLeft=_this._$containerOfScrollable.scrollLeft();var scrollTop=_this._$containerOfScrollable.scrollTop();if(_this._$containerOfFixed[0].childNodes.length){_this._$entityHeadersContainer.css({transform:"translate("+-scrollLeft+"px, 0px)"});_this._$entityHeadersBlind.css({transform:"translate("+scrollLeft+"px, 0px)"});_this._$visInstancesContainer.css({transform:"translate("+-scrollLeft+"px, "+-scrollTop+"px)"});_this._$viewHeadersContainer.css({transform:"translate(0px, "+-scrollTop+"px)"})}else{_this._$entityHeadersContainer.css({transform:"translate(0, "+scrollTop+"px)"});_this._$viewHeadersContainer.css({transform:"translate("+scrollLeft+"px, 0)"});_this._$cornerBlind.css({transform:"translate("+scrollLeft+"px, "+scrollTop+"px)"})}_this._reportPositionsOfSelectedHeaders()},_reportPositionsOfSelectedHeaders:function(){var _this=this;var positionsOfSelectedHeaders=_this.getPositionsOfSelectedHeaders();_this.trigger("change-positions-of-selected-headers",positionsOfSelectedHeaders[0],positionsOfSelectedHeaders[1],positionsOfSelectedHeaders[2],positionsOfSelectedHeaders[3])},_reviseSpaceSize:function(increaseOnly){var _this=this;var elInnerWidth=_this._$containerOfScrollable[0].clientWidth;var elInnerHeight=_this._$containerOfScrollable[0].clientHeight;var elScrollLeft=_this._$containerOfScrollable.scrollLeft();var elScrollTop=_this._$containerOfScrollable.scrollTop();var spaceWidth=_this._cachedMinSpaceWidth;var spaceHeight=_this._cachedMinSpaceHeight;var missingWidth=elScrollLeft+elInnerWidth-_this._spacePadding.h-spaceWidth;var missingHeight=elScrollTop+elInnerHeight-_this._spacePadding.v-spaceHeight;spaceWidth+=Math.max(0,missingWidth);spaceHeight+=Math.max(0,missingHeight);if(!increaseOnly||spaceWidth>=_this._$space.width()&&spaceHeight>=_this._$space.height()){_this._$space.css({width:spaceWidth,height:spaceHeight});_this._$viewHeadersBlind.height(spaceHeight)}},_updateDemensionsForContainerOfFixed:function(){var _this=this;_this._$containerOfFixed.width(_this._$containerOfScrollable[0].clientWidth);_this._$containerOfFixed.height(_this._$containerOfScrollable[0].clientHeight)},_generateEntityHeaderView:function(entityConfig){var _this=this;var $el=$.bem.generateElement("config-grid-cells","entity-header");var result=new App.MainRegionModule.ConfigHeaderView({dimension:"entity",el:$el,state:_this.options.state,configGrid:_this.options.configGrid,config:entityConfig,parentConfigGridView:_this.options.parentConfigGridView});result.$el.dblclick(function(){if(entityConfig.getParameterValue("kind")){return}if(_this.options.configGrid.getSelectedEntityConfig()==entityConfig){_this.options.configGrid.addEntityAndSelectIt(new App.ContextModule.Config({parameters:{kind:"pair",comparisonMode:"superposition"}}),_this.options.configGrid.getNextEntityNeighbour(entityConfig))}});return result},_generateViewHeaderView:function(viewConfig){var _this=this;var $el=$.bem.generateElement("config-grid-cells","view-header");var result=new App.MainRegionModule.ConfigHeaderView({dimension:"view",el:$el,state:_this.options.state,configGrid:_this.options.configGrid,config:viewConfig,parentConfigGridView:_this.options.parentConfigGridView});return result},_generateVisInstanceView:function(entityConfig,viewConfig){var _this=this;var $el=$.bem.generateElement("config-grid-cells","vis-instance").addClass("vis-instance");var result=new App.MainRegionModule.VisInstanceView({el:$el,state:_this.options.state,configGrid:_this.options.configGrid,entityConfig:entityConfig,viewConfig:viewConfig,parentConfigGridView:_this.options.parentConfigGridView});return result}})},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.ConfigGridPanelView=MainRegionModule.ConfigGridChildView.extend({options:{dimension:null,configGrid:null,parentState:null,parentConfigGridView:null},_cachedConfigGridType:null,_cachedConfig:null,_cachedBorderRadiusFixerSize:null,initialize:function(options){var _this=this;_this.options=_.defaults(options||{},this.options);_this.listenTo(_this.options.configGrid,"change_selection",_this.renderIfParentConfigGridIsVisible);_this._cachedConfigGridType=this.options.configGrid.getType();_this._$borderRadiusFixer=$.bem.generateElement("config-grid-panel","border-radius-fixer");_this._$borderRadiusFixerContainer=$.bem.generateElement("config-grid-panel","border-radius-fixer-container");_this._$borderRadiusFixerContainer.append(_this._$borderRadiusFixer);_this.$el.prepend(_this._$borderRadiusFixerContainer);_this._cachedBorderRadiusFixerSize=_this._$borderRadiusFixerContainer.width();_this.updateRadiusFixer(null,null);_this._$mainAreaWrapper=$.bem.generateElement("config-grid-panel","main-area-wrapper");_this._$mainArea=$.bem.generateElement("config-grid-panel","main-area");_this._$mainArea.addClass("cgpma");_this._$mainArea.appendTo(_this._$mainAreaWrapper);_this._$mainAreaWrapper.appendTo(_this.$el);_this._$commands=_this.$(".config-grid-panel__commands");_this._$commandClone=_this.$(".config-grid-panel__command_action_clone");_this._$commandDelete=_this.$(".config-grid-panel__command_action_delete");_this._$commandApply=_this.$(".config-grid-panel__command_action_apply");_this._$commandDiscard=_this.$(".config-grid-panel__command_action_discard");_this._$commandClone.click(function(){if(_this._cachedConfig&&_this._$commandClone.hasClass("config-grid-panel__command_state_enabled")){var clonedConfig=_this._cachedConfig.clone();if(_this.options.dimension=="entity"){_this.options.configGrid.addEntityAndSelectIt(clonedConfig,_this.options.configGrid.getNextEntityNeighbour(_this._cachedConfig))}else{_this.options.configGrid.addViewAndSelectIt(clonedConfig,_this.options.configGrid.getNextViewNeighbour(_this._cachedConfig))}}});_this._$commandDelete.click(function(){if(_this._cachedConfig&&_this._$commandDelete.hasClass("config-grid-panel__command_state_enabled")){if(_this.options.dimension=="entity"){_this.options.configGrid.removeEntityAndSelectNeighbour(_this._cachedConfig)}else{_this.options.configGrid.removeViewAndSelectNeighbour(_this._cachedConfig)}}});_this._$commandApply.click(function(){if(_this._cachedConfig&&_this._$commandApply.hasClass("config-grid-panel__command_state_enabled")){_this._masterBehindMainArea.cleanConfigPlannedParameterValuesAndApplyThem(_this._cachedConfig)}});_this._$commandDiscard.click(function(){if(_this._cachedConfig&&_this._$commandDiscard.hasClass("config-grid-panel__command_state_enabled")){_this._cachedConfig.cancelPlannedParameterUpdates()}});_this._$commandClone.attr("title"," ");_this._$commandDelete.attr("title"," ");_this._$commandApply.attr("title"," ");_this._$commandDiscard.attr("title"," ");App.TooltipModule.convertTitlesToTooltips(_this.$el);_this._updateTooltips();_this._$commands.disableSelection()},render:function(deep,instant){var _this=this;var selectedConfig=null;if(_this.options.dimension=="entity"){selectedConfig=_this.options.configGrid.getSelectedEntityConfig()}else{selectedConfig=_this.options.configGrid.getSelectedViewConfig()}var configWasReplaced=false;if(_this._cachedConfig!=selectedConfig){if(_this._cachedConfig){_this.stopListening(_this._cachedConfig,"change",_this.renderIfParentConfigGridIsVisible)}_this._cachedConfig=selectedConfig;if(_this._cachedConfig){_this.listenTo(_this._cachedConfig,"change",_this.renderIfParentConfigGridIsVisible)}configWasReplaced=true;_this._updateTooltips()}var dynamicDerivedConfigData=App.dynamicDerivedConfigDataProvider.get(_this._cachedConfig);if(_this._cachedDynamicDerivedConfigData!=dynamicDerivedConfigData){if(_this._cachedDynamicDerivedConfigData){this.stopListening(_this._cachedDynamicDerivedConfigData,"change",_this.renderIfParentConfigGridIsVisible)}_this._cachedDynamicDerivedConfigData=dynamicDerivedConfigData;if(_this._cachedDynamicDerivedConfigData){_this.listenTo(_this._cachedDynamicDerivedConfigData,"change",_this.renderIfParentConfigGridIsVisible)}}_this._setupMainArea(deep,instant);var hashForData=null;if(_this._cachedConfig){hashForData=_this._cachedConfig.getHash()+_this._cachedDynamicDerivedConfigData.getHash()}if(configWasReplaced||_this._cachedHashForData!==hashForData){_this._cachedHashForData=hashForData;if(_this._masterBehindMainArea){_this._masterBehindMainArea.syncConfigGridPanelMainArea(_this,instant)}_this._renderApplyDiscardCommands(deep,instant)}if(configWasReplaced||deep){_this._renderCloneDeleteCommands(deep,instant)}},updateRadiusFixer:function(selectedConfigGridOffsetStart,selectedConfigGridSize){var _this=this;var coordinate=selectedConfigGridOffsetStart;var size=selectedConfigGridSize;if(_.isNumber(size)&&!_.isNaN(size)&&size>0){if(coordinate+size<=0){coordinate=null}if(coordinate>_this._cachedBorderRadiusFixerSize){coordinate=null}else if(coordinate<0){coordinate=0}else if(coordinate+size>_this._cachedBorderRadiusFixerSize){size=_this._cachedBorderRadiusFixerSize-coordinate}}else{coordinate=null;size=null}if(coordinate!==null){if(_this.options.dimension=="entity"){_this._$borderRadiusFixer.css({left:coordinate,width:size})}else{_this._$borderRadiusFixer.css({top:coordinate,height:size})}}else{if(_this.options.dimension=="entity"){_this._$borderRadiusFixer.css({left:0,width:0})}else{_this._$borderRadiusFixer.css({top:0,height:0})}}},_updateTooltips:function(){var _this=this;if(!this._cachedConfig){_this._$commandClone.attr("tooltip-title","");_this._$commandDelete.attr("tooltip-title","");_this._$commandApply.attr("tooltip-title","");_this._$commandDiscard.attr("tooltip-title","")}else{var tooltipTemplate=null;try{tooltipTemplate=Marionette.TemplateCache.get("#config-grid-panel__command-titles_"+_this._cachedConfigGridType+"_"+this._cachedConfig.getDimension()+"_"+_.str.trim(this._cachedConfig.getParameterValue("kind")))}catch(e){tooltipTemplate=Marionette.TemplateCache.get("#config-grid-panel__command-titles_"+_this._cachedConfigGridType+"_"+this._cachedConfig.getDimension())}var tooltips=tooltipTemplate().split("|");_this._$commandClone.attr("tooltip-title",tooltips[0]);_this._$commandDelete.attr("tooltip-title",tooltips[1]);_this._$commandApply.attr("tooltip-title",tooltips[2]);_this._$commandDiscard.attr("tooltip-title",tooltips[3])}},_renderCloneDeleteCommands:function(deep,instant){var _this=this;var cloneEnabled=!!_this._cachedConfig;var deleteEnabled=!!_this._cachedConfig;_this._$commandClone.toggleClass("config-grid-panel__command_state_enabled",cloneEnabled);_this._$commandDelete.toggleClass("config-grid-panel__command_state_enabled",deleteEnabled)},_renderApplyDiscardCommands:function(deep,instant){var _this=this;var enabled=!!(_this._cachedConfig&&_this._cachedConfig.hasPlannedParameterUpdates());_this._$commandApply.toggleClass("config-grid-panel__command_state_enabled",enabled);_this._$commandDiscard.toggleClass("config-grid-panel__command_state_enabled",enabled)},_setupMainArea:function(deep,instant){var _this=this;var master=null;if(_this._cachedConfig){master=App.RepresentationModule.getMasterForConfig(_this._cachedConfig,true)}var configHasChanged=_this._configBehindMainArea!==_this._cachedConfig;var masterHasChanged=_this._masterBehindMainArea!==master;if(configHasChanged||masterHasChanged){if(_this._masterBehindMainArea){_this._masterBehindMainArea.destroyConfigGridPanelMainArea(this)}if(!_this._cachedConfig){_this._configBehindMainArea=null;_this._masterBehindMainArea=null;_this._$mainArea.html(Backbone.Marionette.TemplateCache.get("#cgpma_"+_this._cachedConfigGridType+"_"+this.options.dimension+"__empty"))}else{_this._configBehindMainArea=_this._cachedConfig;_this._masterBehindMainArea=master;_this._$mainArea.empty();_this._$mainArea.removeData();try{_this._$mainArea.html(Backbone.Marionette.TemplateCache.get("#cgpma_"+_this._cachedConfigGridType+"_"+this.options.dimension+"_"+master.id.split(".")[2]))}catch(e){_this._$mainArea.html(Backbone.Marionette.TemplateCache.get("#cgpma_"+_this._cachedConfigGridType+"_"+this.options.dimension+"__unknown"))}_this._masterBehindMainArea.prepareConfigGridPanelMainArea(_this)}var masterKind=undefined;if(_this._masterBehindMainArea){masterKind=_this._masterBehindMainArea.id.split(".")[2]}this.$el.setMod("config-grid-panel","master-kind",masterKind?masterKind:false)}}})},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.ConfigHeaderView=MainRegionModule.ConfigGridChildView.extend({options:{dimension:null,parentState:null,configGrid:null,config:null,parentConfigGridView:null},_dimensionIsEntity:false,_dimensionIsView:false,initialize:function(options){var _this=this;_this.options=_.defaults(options||{},_this.options);_this._cachedConfigGridType=options.configGrid.getType();_this._cachedKind="-";_this._cachedMaster=null;_this.$el.disableSelection();_this.dynamicDerivedConfigData=null;if(_this.options.dimension==="entity"){_this._dimensionIsEntity=true}else{_this._dimensionIsView=true}_this._debouncedRenderIfParentConfigGridIsVisible=_this.renderIfParentConfigGridIsVisible;_this.listenTo(_this.options.configGrid,"change_selection",_this._debouncedRenderIfParentConfigGridIsVisible);_this.listenTo(_this.options.configGrid,"change_layout",_this._debouncedRenderIfParentConfigGridIsVisible);_this.listenTo(_this.options.config,"change:parametersOrPlannedParameterUpdates",_this._debouncedRenderIfParentConfigGridIsVisible);_this._$background=$.bem.generateElement("config-grid-cells",_this._dimensionIsEntity?"entity-header-background":"view-header-background");_this.$el.append(_this._$background);_this.$el.click(function(event){if(_this._dimensionIsEntity){_this.options.parentConfigGridView.ignoreAxisOnNextScroll(false,true)}else{_this.options.parentConfigGridView.ignoreAxisOnNextScroll(true,false)}if(_this._cachedSelected){_this.options.parentConfigGridView.scrollAccordingToSelection()}else{_this.options.configGrid.set(_this._dimensionIsEntity?"selectedEntityConfigClientId":"selectedViewConfigClientId",_this.options.config.getClientId())}event.stopPropagation();event.preventDefault()});_this._cachedSelected=false;_this._cachedHashForParameters=null},setSize:function(widthOrHeight){var _this=this;var $el=_this.$el;var changed=false;if(_this._dimensionIsEntity){if(widthOrHeight!=$el.width()){$el.width(widthOrHeight);changed=true}}else{return;if(widthOrHeight!=$el.height()){$el.height(widthOrHeight);changed=true}}if(changed){_this._debouncedRenderIfParentConfigGridIsVisible()}},render:function(deep,instant){var _this=this;if(!_this.options.config.getConfigGridType()){return}var newSelected=_this._dimensionIsEntity?_this.options.configGrid.getSelectedEntityConfig()==_this.options.config:_this.options.configGrid.getSelectedViewConfig()==_this.options.config;if(newSelected!==_this._cachedSelected){if(newSelected){_this.$el.addClass(_this._dimensionIsEntity?"config-grid-cells__entity-header_selected":"config-grid-cells__view-header_selected")}else{_this.$el.removeClass(_this._dimensionIsEntity?"config-grid-cells__entity-header_selected":"config-grid-cells__view-header_selected")}_this._cachedSelected=newSelected}var newKind=_this.options.config.getParameterValue("kind");if(newKind!==_this._cachedKind){_this._cachedKind=newKind;_this._cachedMaster=App.RepresentationModule.getMasterForConfig(_this.options.config);if(_this.dynamicDerivedConfigData){_this.stopListening(_this.dynamicDerivedConfigData)}_this.dynamicDerivedConfigData=App.dynamicDerivedConfigDataProvider.get(_this.options.config);_this.listenTo(_this.dynamicDerivedConfigData,"change",_this._debouncedRenderIfParentConfigGridIsVisible);_this.$el.setMod("config-grid-cells","entity-header","kind",newKind?newKind:false)}_this._cachedMaster.renderHeaderContent(this,instant)}})},Logger); +"use strict";App.module("MainRegionModule",function(MainRegionModule,App,Backbone,Marionette,$,_,Logger){MainRegionModule.VisInstanceView=MainRegionModule.ConfigGridChildView.extend({options:{state:null,configGrid:null,entityConfig:null,viewConfig:null,parentConfigGridView:null},initialize:function(options){var _this=this;_this.options=_.defaults(options||{},_this.options);_this._configGridType=_this.options.configGrid.getType();_this.$el.attr("data-entity-id",_this.options.entityConfig.getClientId());_this.$el.attr("data-view-id",_this.options.viewConfig.getClientId());_this.$content=$.bem.generateElement("vis-instance","content");_this.$cover=$.bem.generateElement("vis-instance","cover");_this.$coverMessage=$.bem.generateElement("vis-instance","cover-message");_this.$cover.append(_this.$coverMessage);_this.$el.append(_this.$content,_this.$cover);_this._cachedEntityKind="-";_this._cachedViewKind="-";_this.dynamicDerivedConfigDataForEntity=null;_this.dynamicDerivedConfigDataForView=null;_this.dynamicDerivedVisInstanceDataForBase=null;_this.dynamicDerivedVisInstanceDataForOverlay=null;_this.dynamicDerivedVisInstanceDataForTemp=null;_this._debouncedRenderIfParentConfigGridIsVisible=_.debounce(function(){_this.renderIfParentConfigGridIsVisible()},50);_this.listenTo(_this.options.entityConfig,"change:parameters",_this._debouncedRenderIfParentConfigGridIsVisible);_this.listenTo(_this.options.viewConfig,"change:parameters",_this._debouncedRenderIfParentConfigGridIsVisible);_this.listenTo(_this.options.entityConfig,"change:tempParameters",_this._debouncedRenderIfParentConfigGridIsVisible);_this.listenTo(_this.options.viewConfig,"change:tempParameters",_this._debouncedRenderIfParentConfigGridIsVisible);_this.$el.click(function(){var entityClientId=_this.options.entityConfig.getClientId();var viewClientId=_this.options.viewConfig.getClientId();if(_this.options.configGrid.get("selectedEntityConfigClientId")!==entityClientId||_this.options.configGrid.get("selectedViewConfigClientId")!==viewClientId){_this.options.configGrid.set({selectedEntityConfigClientId:entityClientId,selectedViewConfigClientId:viewClientId})}else{_this.options.parentConfigGridView.scrollAccordingToSelection()}})},remove:function(){var _this=this;if(_this.dynamicDerivedVisInstanceDataForBase){_this.dynamicDerivedVisInstanceDataForBase.destroy()}if(_this.dynamicDerivedVisInstanceDataForOverlay){_this.dynamicDerivedVisInstanceDataForOverlay.destroy()}if(_this.dynamicDerivedVisInstanceDataForTemp){_this.dynamicDerivedVisInstanceDataForTemp.destroy()}MainRegionModule.ConfigGridChildView.prototype.remove.apply(this,arguments)},setSize:function(width,height){var _this=this;var $el=_this.$el;var changed=false;if(width!=$el.width()){$el.width(width);changed=true}if(height!=$el.height()){$el.height(height);changed=true}if(changed){_this._cachedSizeHash=width+"|"+height;_this._debouncedRenderIfParentConfigGridIsVisible()}},render:function(deep,instant){var _this=this;if(!this.options.entityConfig.getConfigGridType()||!this.options.viewConfig.getConfigGridType()){return}var newEntityKind=_.str.trim(_this.options.entityConfig.getParameterValue("kind"));var newViewKind=_.str.trim(_this.options.viewConfig.getParameterValue("kind"));var entityKindHasChanged=_this._cachedEntityKind!==newEntityKind;var viewKindHasChanged=_this._cachedViewKind!==newViewKind;if(entityKindHasChanged||viewKindHasChanged){_this._cachedEntityKind=newEntityKind;_this._cachedViewKind=newViewKind;if(_this.cachedViewMaster){_this.stopListening(_this.cachedViewMaster)}_this._cachedEntityMaster=App.RepresentationModule.getMasterForConfig(_this.options.entityConfig);_this._cachedViewMaster=App.RepresentationModule.getMasterForConfig(_this.options.viewConfig);_this.$content.empty();_this.listenTo(_this._cachedViewMaster,"change:auxiliaryResourcesStatus",_this._debouncedRenderIfParentConfigGridIsVisible)}if(entityKindHasChanged){if(_this.dynamicDerivedConfigDataForEntity){_this.stopListening(_this.dynamicDerivedConfigDataForEntity)}_this.dynamicDerivedConfigDataForEntity=App.dynamicDerivedConfigDataProvider.get(_this.options.entityConfig);_this.listenTo(_this.dynamicDerivedConfigDataForEntity,"change",_this._debouncedRenderIfParentConfigGridIsVisible)}if(viewKindHasChanged){if(_this.dynamicDerivedConfigDataForView){_this.stopListening(_this.dynamicDerivedConfigDataForView)}_this.dynamicDerivedConfigDataForView=App.dynamicDerivedConfigDataProvider.get(_this.options.viewConfig);_this.listenTo(_this.dynamicDerivedConfigDataForView,"change",_this._debouncedRenderIfParentConfigGridIsVisible)}if(entityKindHasChanged||viewKindHasChanged){var dynamicDataTypes=["Base","Overlay","Temp"];for(var i=0;i<3;i++){var propertyName="dynamicDerivedVisInstanceDataFor"+dynamicDataTypes[i];var generatorFunctionName="generateDynamicDerivedVisInstanceDataFor"+dynamicDataTypes[i];if(_this[propertyName]){_this.stopListening(_this[propertyName]);_this[propertyName].destroy()}_this[propertyName]=_this._cachedEntityMaster[generatorFunctionName](_this);_this.listenTo(_this[propertyName],"change",_this._debouncedRenderIfParentConfigGridIsVisible)}}_this._cachedViewMaster.renderVisInstance(_this,deep,instant)},cancelPointerHighlights:function(){var _this=this;if(_this._cachedViewMaster){_this._cachedViewMaster.cancelVisInstancePointerHighlights(_this)}}})},Logger); +"use strict";(function($){$.widget("cgpma.textfield",{options:{value:"",baseValue:"",autocompleteMaxItemCount:15,autocompleteSort:false,autocompleteSuggestions:null,autocompleteIsAdvisory:false,autocompleteCSSClasses:""},isFocused:function(){var widget=this;return widget.$input.is(":focus")},focus:function(){var widget=this;return widget.$input.focus()},getTextRange:function(){var widget=this;return widget.$input.textrange()},setTextRange:function(textRange){var widget=this;if(textRange.start!=textRange.end){return widget.$input.textrange("set",textRange.start,textRange.end)}return widget.$input.textrange("setcursor",textRange.position)},_create:function(){var widget=this;widget.$element=this.element;widget.$input=$.bem.generateElement("input","cgpma","textfield-input");widget.$input.appendTo(widget.$element);widget.$input.data("widget",widget);widget._applyAutocompleteSuggestions();widget.$input.bind("input",widget.__handleInputChange);widget.$input.bind("keydown",widget.__handleInputKeyDown);widget.$input.bind("keyup",widget.__handleInputKeyUp);widget.$input.bind("click",widget.__handleInputClick)},_applyAutocompleteSuggestions:function(){var widget=this;if(widget.$input.data("ui-autocomplete")){widget.$input.autocomplete("destroy")}var autocompleteSuggestions=widget.options.autocompleteSuggestions;if(!autocompleteSuggestions){return;delete widget._invertedAutocompleteSuggestions}widget._invertedAutocompleteSuggestions=_.invert(autocompleteSuggestions);widget.$input.autocomplete({delay:0,minLength:0,source:$.proxy(widget,"_autocompleteSource")});widget.$input.autocomplete("widget").addClass(widget.options.autocompleteCSSClasses);widget._on(widget.$input,{autocompleteselect:widget.__handleInputChange,autocompleteopen:widget.__handleAutocompleteOpen,autocompleteclose:widget.__handleAutocompleteClose})},_autocompleteSource:function(request,response){var widget=this;var matcher=new RegExp($.ui.autocomplete.escapeRegex(_.str.trim(request.term)),"i");var responseItems=[];_.each(widget.options.autocompleteSuggestions,function(kindName,kind){if(widget.options.autocompleteAlwaysFull||!request.term||matcher.test(kindName)){responseItems.push({label:kindName,value:kindName})}});if(responseItems.length==1&&responseItems[0].label===request.term){responseItems=[]}if(responseItems.length>widget.options.autocompleteMaxItemCount){responseItems=responseItems.slice(0,widget.options.autocompleteMaxItemCount)}if(widget.options.autocompleteSort){responseItems=_.sortBy(responseItems,"label")}response(responseItems)},_createShowAllButton:function(){return;var input=this.input,wasOpen=false;$("
").attr("tabIndex",-1).attr("title","Show All Items").tooltip().appendTo(this.wrapper).button({icons:{primary:"ui-icon-triangle-1-s"},text:false}).removeClass("ui-corner-all").addClass("custom-combobox-toggle ui-corner-right").mousedown(function(){wasOpen=input.autocomplete("widget").is(":visible")}).click(function(){input.focus();if(wasOpen){return}input.autocomplete("search","")})},_isAutocompleteVisible:function(){var widget=this;if(widget.$input.data("ui-autocomplete")){return widget.$input.autocomplete("widget").is(":visible")}else{return false}},_destroy:function(){this.$input.removeData()},_setOption:function(key,value){var widget=this;if(!widget.options.hasOwnProperty(key)){throw"Option "+key+" does not exist"}if(value===widget.options[key]||_.isArray(value)&&_.isEqual(value,widget.options[key])){return}var prev=widget.options[key];this._super(key,value);switch(key){case"value":this._applyValue();break;case"baseValue":this._updateStatus();break;case"autocompleteSuggestions":this._applyAutocompleteSuggestions();break}widget._trigger("change"+key.toLowerCase(),null,{newValue:value,prevValue:prev})},_realValueToInputValue:function(realValue){var widget=this;var value=realValue;var valueInOptionsIsString=_.isString(value);var trimmedValueInOptions=valueInOptionsIsString?_.str.trim(value):value;var trimmedCharsOnLeft=valueInOptionsIsString?value.indexOf(trimmedValueInOptions):null;var trimmedCharsOnRight=valueInOptionsIsString?value.length-trimmedValueInOptions.length-trimmedCharsOnLeft:null;if(valueInOptionsIsString&&widget.options.autocompleteSuggestions&&widget.options.autocompleteSuggestions[trimmedValueInOptions]!==undefined){value=value.substring(0,trimmedCharsOnLeft)+widget.options.autocompleteSuggestions[trimmedValueInOptions]+value.substring(value.length-trimmedCharsOnRight)}if(valueInOptionsIsString&&value.length>=4&&value.substring(0,2)=="__"&&value.substring(value.length-2)=="__"){value=value.substring(2,value.length-2)}return value},_inputValueToRealValue:function(inputValue){var widget=this;var value=inputValue;var trimmedValueInInput=_.str.trim(value);var trimmedCharsOnLeft=value.indexOf(trimmedValueInInput);var trimmedCharsOnRight=value.length-trimmedValueInInput.length-trimmedCharsOnLeft;if(widget.options.autocompleteSuggestions&&widget.options.autocompleteSuggestions[trimmedValueInInput]&&widget.options.autocompleteSuggestions[trimmedValueInInput]!==trimmedValueInInput){value="__"+value+"__"}if(widget._invertedAutocompleteSuggestions&&widget._invertedAutocompleteSuggestions[trimmedValueInInput]!==undefined){value=value.substring(0,trimmedCharsOnLeft)+widget._invertedAutocompleteSuggestions[trimmedValueInInput]+value.substring(value.length-trimmedCharsOnRight)}return value},_applyValue:function(){var widget=this;var inputValue=widget._realValueToInputValue(widget.options.value);if(inputValue!==widget.$input.val()&&!widget._doNotUpdateInputOnValueChange){widget.$input.val(inputValue)}widget._updateStatus()},_updateStatus:function(){var widget=this;widget.$element.toggleClass("cgpma__textfield_status_modified",widget.options.baseValue!==widget.options.value)},__handleInputChange:function(){var $input=null;if(this.element){$input=this.$input}else{$input=$(this)}var widget=$input.data("widget");var valueInInput=$input.val();if(arguments[1]&&arguments[1].item){valueInInput=arguments[1].item.value}var realValue=widget._inputValueToRealValue(valueInInput);widget._setOption("value",realValue)},__handleInputKeyDown:function(event){var $this=$(this);var widget=$this.data("widget");if(event.keyCode==13){}if(event.keyCode==38||event.keyCode==40){if(widget.$input.data("ui-autocomplete")){if(!widget._isAutocompleteVisible()){widget.$input.autocomplete("search","")}else{widget._doNotUpdateInputOnValueChange=true;widget._setOption("value",widget._inputValueToRealValue(widget.$input.val()));delete widget._doNotUpdateInputOnValueChange}}}},__handleInputKeyUp:function(event){var $this=$(this);var widget=$this.data("widget");if(event.keyCode==13){if(widget._lastInputChangeWasCausedByAutocomplete){widget._lastInputChangeWasCausedByAutocomplete=false}else{widget._trigger("apply");if(widget.$input.data("ui-autocomplete")){widget.$input.autocomplete("close")}}}if(event.keyCode==27){if(!widget._isAutocompleteVisible()){widget._trigger("discard")}event.preventDefault()}},__handleAutocompleteOpen:function(event){var widget=this;widget.$element.addClass("cgpma__textfield_autocomplete-is-open")},__handleAutocompleteClose:function(event){var widget=this;widget.$element.removeClass("cgpma__textfield_autocomplete-is-open")},__handleInputClick:function(){var $this=$(this);var widget=$this.data("widget");if(widget.$input.data("ui-autocomplete")){widget.$input.autocomplete("search","")}}})})(jQuery); +"use strict";(function($){$.widget("cgpma.tickbox",{options:{value:null,baseValue:null},_create:function(){var widget=this;widget.$element=this.element;widget.$element.disableSelection();widget.$tick=$.bem.generateElement("cgpma","tickbox-tick");widget.$tick.appendTo(widget.$element);widget.$element.data("widget",widget);widget.$element.bind("click",widget.__handleTickClick)},_destroy:function(){this.$element.removeData()},_setOption:function(key,value){var widget=this;if(!widget.options.hasOwnProperty(key)){throw"Option "+key+" does not exist"}if(value===widget.options[key]||_.isArray(value)&&_.isEqual(value,widget.options[key])){return}var prev=widget.options[key];widget._super(key,value);switch(key){case"value":widget._applyValue();break;case"baseValue":widget._updateStatus();break}widget._trigger("change"+key.toLowerCase(),null,{newValue:value,prevValue:prev})},_applyValue:function(){var widget=this;widget.$element.toggleClass("cgpma__tickbox_ticked",!!widget.options.value);widget._updateStatus()},_updateStatus:function(){var widget=this;widget.$element.toggleClass("cgpma__tickbox_status_modified",!!widget.options.baseValue!=!!widget.options.value)},__handleTickClick:function(){var $this=$(this);var widget=$this.data("widget");var newValue=widget.options.value?"":"1";if(newValue==""&&$this.hasClass("cgpma__tickbox_type_radio")){return}widget._setOption("value",newValue)}})})(jQuery); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.logger=Logger.get("RepresentationModule")})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.Error=Marionette.Object.extend({defaults:{type:"unknown"},knownErrorTypes:{drawing:{needToEmptyContent:true},view_default:{needToEmptyContent:true},view_unknown:{needToEmptyContent:true},"data-preparing_entity-derived":{needToEmptyContent:false},"data-preparing_base":{needToEmptyContent:false},"data-preparing_overlay":{needToEmptyContent:false},"api-error_entity-derived":{needToEmptyContent:true},"api-error_base":{needToEmptyContent:true},"api-error_overlay":{needToEmptyContent:true},"api-message_progress_base":{needToEmptyContent:true},"data-error_entity-config":{needToEmptyContent:true},"data-error_view-config":{needToEmptyContent:true},"data-error_entity-derived":{needToEmptyContent:true},"data-error_base":{needToEmptyContent:true},"data-error_overlay":{needToEmptyContent:true},collection_undefined:{needToEmptyContent:true},"collection_no-recordings":{needToEmptyContent:true},pair_incomplete:{needToEmptyContent:true},"comparison_not-supported":{needToEmptyContent:true},"comparison_wrong-type":{needToEmptyContent:true},recording_undefined:{needToEmptyContent:true},"ok-count-0":{needToEmptyContent:true},"auxiliary-resources_pending":{needToEmptyContent:false},"auxiliary-resources_fail":{needToEmptyContent:true},unknown:{needToEmptyContent:true}},initialize:function(options){this.options=_.defaults(options,this.defaults)},needToEmptyContent:function(){return this.knownErrorTypes[this.options.type].needToEmptyContent}});RepresentationModule.Error.protot})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.DynamicDerivedConfigData=App.DataModule.ModelWithHashableAttributes.extend({})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){var logger=null;RepresentationModule.addInitializer(function(){logger=Logger.get("App.RepresentationModule");RepresentationModule.DynanicDerivedConfigDataProvider=Marionette.Object.extend({initialize:function(){this._dynamicDerivedConfigDataByConfigClientId={};this._kindByConfigClientId={}},get:function(config){if(!config){return null}var configClientId=config.getClientId();var configKind=config.getParameterValue("kind");if(this._kindByConfigClientId[configClientId]!==configKind){this.retire(configClientId);this._kindByConfigClientId[configClientId]=configKind}if(!this._dynamicDerivedConfigDataByConfigClientId[configClientId]){var master=App.RepresentationModule.getMasterForConfig(config);var configGrid=this.options.configGridsByType[config.getConfigGridType()];this._dynamicDerivedConfigDataByConfigClientId[configClientId]=master.generateDynamicDerivedConfigData(config,configGrid)}return this._dynamicDerivedConfigDataByConfigClientId[configClientId]},retire:function(configClientId){var dynamicDerivedDataToRetire=this._dynamicDerivedConfigDataByConfigClientId[configClientId];if(dynamicDerivedDataToRetire){dynamicDerivedDataToRetire.destroy()}delete this._dynamicDerivedConfigDataByConfigClientId[configClientId];delete this._kindByConfigClientId[configClientId]}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.DynamicDerivedVisInstanceData=App.DataModule.ModelWithHashableAttributes.extend({})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.MasterPrototypes={};RepresentationModule.masters={};RepresentationModule.registerMaster=function(masterDefinition){var MasterPrototype;var inheritId=masterDefinition.inherit?masterDefinition.inherit:"";var id=masterDefinition.id;if(!id){throw _.str.sprintf("Master definition does not contain an id")}var masterWithThisId=null;try{masterWithThisId=RepresentationModule.getMasterById(id)}catch(e){}if(masterWithThisId){throw _.str.sprintf('Master with id "%s" already exists',id)}var prototypeOptions={};var prototypeDefaultConfigParameterValues={};if(!inheritId){MasterPrototype=Marionette.Object}else{try{MasterPrototype=RepresentationModule.getMasterPrototypeById(inheritId);var parentMaster=RepresentationModule.getMasterById(inheritId);prototypeOptions=parentMaster.options;prototypeDefaultConfigParameterValues=parentMaster.defaultConfigParameterValues}catch(e){throw _.str.sprintf('Master with id "%s" could not be inherited from master with id "%s" (it does not exist)',id,inheritId)}}var combinedOptions=masterDefinition.options?_.defaults({},masterDefinition.options,prototypeOptions):_.clone(prototypeOptions);for(var key in masterDefinition.options){if(masterDefinition.options.hasOwnProperty(key)&&masterDefinition.options[key]===undefined){delete combinedOptions[key]}}masterDefinition.options=combinedOptions;var combinedDefaultConfigParameterValues=masterDefinition.defaultConfigParameterValues?_.defaults({},masterDefinition.defaultConfigParameterValues,prototypeDefaultConfigParameterValues):_.clone(prototypeDefaultConfigParameterValues);for(var key in masterDefinition.defaultConfigParameterValues){if(masterDefinition.defaultConfigParameterValues.hasOwnProperty(key)&&masterDefinition.defaultConfigParameterValues[key]===undefined){delete combinedDefaultConfigParameterValues[key]}}masterDefinition.defaultConfigParameterValues=combinedDefaultConfigParameterValues;var Master=MasterPrototype.extend(masterDefinition);RepresentationModule.MasterPrototypes[id]=Master;RepresentationModule.masters[id]=new Master};RepresentationModule.getMasterPrototypeById=function(id){var MasterPrototype=RepresentationModule.MasterPrototypes[id];if(!MasterPrototype){throw _.str.sprintf('MasterPrototype with id "%s" not found.',id)}return MasterPrototype};RepresentationModule.getMasterById=function(id){var master=RepresentationModule.masters[id];if(!master){throw _.str.sprintf('Master with id "%s" not found.',id)}return master};RepresentationModule.getMasterForConfig=function(config,lookAtPlanned){var dimension=config.getDimension();var configGridType=config.getConfigGridType();var configKind=lookAtPlanned?config.getPlannedParameterValue("kind"):config.getParameterValue("kind");configKind=_.str.trim(configKind);if(!configKind){configKind="default"}var id=[dimension,configGridType,configKind].join(".");var master=RepresentationModule.masters[id];if(!master){try{master=RepresentationModule.getMasterById([dimension,"_unknown"].join("."))}catch(e){throw _.str.sprintf('Master for config "%s" not found (master with id "%s" does not exist).',JSON.stringify(config.serialize()),id)}}return master}})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"_",options:{},defaultConfigParameterValues:{kind:""},initialize:function(){},generateDynamicDerivedConfigData:function(config,configGrid){return new RepresentationModule.DynamicDerivedConfigData},configGridParameterHasDefaultValue:function(config,parameterName){return this.getConfigParameterValueOrDefaultValue(config,parameterName)==this.defaultConfigParameterValues[parameterName]},getConfigParameterValueOrDefaultValue:function(config,parameterName,trimResult){var value=config.getParameterValue(parameterName);if(!_.isUndefined(value)){return trimResult&&_.isString(value)?_.str.trim(value):value}else{return this.defaultConfigParameterValues[parameterName]}},getConfigPlannedParameterValueOrDefaultValue:function(config,parameterName){var value=config.getPlannedParameterValue(parameterName);if(!_.isUndefined(value)){return value}else{return this.defaultConfigParameterValues[parameterName]}},getSupportedKind:function(){if(this._cachedSupportedKind===undefined){this._cachedSupportedKind=this.id.split(".")[2]}return this._cachedSupportedKind},planConfigParameterUpdateWithRespectToValueAndDefaultValue:function(config,parameterName,parameterValue){var defaultParameterValue=this.defaultConfigParameterValues[parameterName];var currentParameterValue=config.getParameterValue(parameterName);var plannedParameterValue=parameterValue;if(currentParameterValue===undefined&&plannedParameterValue===""+defaultParameterValue){config.cancelPlannedParameterUpdate(parameterName)}else{config.planParameterUpdate(parameterName,plannedParameterValue)}},extractCleanedConfigParameterValuesFromPlannedParameterValues:function(config){var result=config.getPlannedParameterValues();for(var key in result){if(result.hasOwnProperty(key)){if(this.defaultConfigParameterValues[key]===undefined){delete result[key]}}}for(var key in this.defaultConfigParameterValues){if(this.defaultConfigParameterValues.hasOwnProperty(key)){if(!result.hasOwnProperty(key)){result[key]=""+this.defaultConfigParameterValues[key]}}}return result},cleanConfigPlannedParameterValuesAndApplyThem:function(config){var newParameterValues=this.extractCleanedConfigParameterValuesFromPlannedParameterValues(config);config.unserialize({parameters:newParameterValues,plannedParameterUpdates:{},tempParameters:{}})},parseAutocompleteSuggestions:function(rawAutocompleteSuggestions){if(!_.isString(rawAutocompleteSuggestions)||!rawAutocompleteSuggestions){return null}var rawAutocompleteAsArray=rawAutocompleteSuggestions.split(";");var result={};_.each(rawAutocompleteAsArray,function(item){var parts=item.split("|");if(parts.length==2){result[parts[0]]=parts[1]}else{result[parts[0]]=parts[0]}});return result},prepareConfigGridPanelMainArea:function(configGridPanelView){var $textfields=configGridPanelView._$mainArea.find(".cgpma__textfield");configGridPanelView._$mainArea.data("$textfields",$textfields);var master=this;$textfields.each(function(){var $textfield=$(this);if(!$textfield.data("cgpma-textfield")){$textfield.textfield({autocompleteSuggestions:master.parseAutocompleteSuggestions($textfield.data("autocomplete-suggestions")),autocompleteIsAdvisory:$textfield.data("autocomplete-is-advisory"),autocompleteSort:$textfield.data("autocomplete-sort"),autocompleteCSSClasses:"ui_config-grid-type_"+configGridPanelView._cachedConfigGridType})}else{$textfield.unbind("textfieldchangevalue");$textfield.unbind("textfieldapply");$textfield.unbind("textfielddiscard")}$textfield.data("configGridPanelView",configGridPanelView);$textfield.bind("textfieldchangevalue",master.__panelInputChangeValueHandler);$textfield.bind("textfieldapply",master.__panelInputApplyHandler);$textfield.bind("textfielddiscard",master.__panelInputDiscardHandler)});var $tickboxes=configGridPanelView._$mainArea.find(".cgpma__tickbox");configGridPanelView._$mainArea.data("$tickboxes",$tickboxes);$tickboxes.each(function(){var $tickbox=$(this);if(!$tickbox.data("cgpma-tickbox")){$tickbox.tickbox()}$tickbox.data("configGridPanelView",configGridPanelView);$tickbox.bind("tickboxchangevalue",master.__panelInputChangeValueHandler)});var $inputBlocks=configGridPanelView._$mainArea.find(".cgpma__input-block");configGridPanelView._$mainArea.data("$inputBlocks",$inputBlocks);$inputBlocks.each(function(){var $inputBlock=$(this);var inputBlockName=$inputBlock.data("name");if(!inputBlockName){var $firstElementWithParameterNameInsideInputBlock=$inputBlock.find("[data-parameter-name]").first();inputBlockName=$firstElementWithParameterNameInsideInputBlock.data("parameter-name")}configGridPanelView._$mainArea.data("$inputBlock_"+inputBlockName,$inputBlock)});var $allInputs=$tickboxes.add($textfields);configGridPanelView._$mainArea.data("$allInputs",$allInputs)},__panelInputChangeValueHandler:function(event){var $this=$(this);var parameterName=$this.data("parameter-name");if(!parameterName){return}var configGridPanelView=$this.data("configGridPanelView");var config=configGridPanelView._cachedConfig;var master=configGridPanelView._masterBehindMainArea;var value=undefined;if($this.data("cgpma-tickbox")){value=$this.tickbox("option","value")}else{value=$this.textfield("option","value")}master.planConfigParameterUpdateWithRespectToValueAndDefaultValue(config,parameterName,value)},__panelInputApplyHandler:function(){var $this=$(this);var configGridPanelView=$this.data("configGridPanelView");configGridPanelView._masterBehindMainArea.cleanConfigPlannedParameterValuesAndApplyThem(configGridPanelView._cachedConfig)},__panelInputDiscardHandler:function(){var $this=$(this);var configGridPanelView=$this.data("configGridPanelView");configGridPanelView._cachedConfig.cancelPlannedParameterUpdates()},syncConfigGridPanelMainArea:function(configGridPanelView,instant){var $inputs=configGridPanelView._$mainArea.data("$allInputs");if($inputs){var _this=this;$inputs.each(function(){var $input=$(this);var parameterName=$input.attr("data-parameter-name");if(parameterName){var widgetType="textfield";if($input.data("cgpma-tickbox")){widgetType="tickbox"}$input[widgetType]("option",{value:""+_this.getConfigPlannedParameterValueOrDefaultValue(configGridPanelView._cachedConfig,parameterName),baseValue:""+_this.getConfigParameterValueOrDefaultValue(configGridPanelView._cachedConfig,parameterName)})}})}},destroyConfigGridPanelMainArea:function(){},renderHeaderContent:function(headerView,instant){var newHashRelatedToOwnData=this._generateHeaderContentHashRelatedToOwnData(headerView);if(newHashRelatedToOwnData!==headerView._cachedContentHashRelatedToOwnData){this._doRenderHeaderContentRelatedToOwnData(headerView,instant);headerView._cachedContentHashRelatedToOwnData=newHashRelatedToOwnData}var newHash=this._generateHeaderContentHashRelatedToGridLayout(headerView);if(newHash!==headerView._cachedContentHashRelatedToGridLayout){this._doRenderHeaderContentRelatedToGridLayout(headerView,instant);headerView._cachedContentHashRelatedToGridLayout=newHash}},_renderHeaderContentRelatedToGridLayout:function(headerView,instant){},_generateHeaderContentHashRelatedToOwnData:function(headerView){return headerView.options.config.getHashForParameters()+(headerView.options.config.hasPlannedParameterUpdates()?"1":"0")+headerView.dynamicDerivedConfigData.getHash()},_generateHeaderContentHashRelatedToGridLayout:function(headerView){}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"entity._",inherit:"_",_generateCollectionConfigTitle:function(config){var rawConfigParameters=config.attributes.parameters.attributes;var labelParts=[];if(rawConfigParameters.library){if(rawConfigParameters.genre){labelParts.push(rawConfigParameters.genre)}if(rawConfigParameters.collection){if(!rawConfigParameters.place){labelParts.push("recordings")}labelParts.push(" in ‘",rawConfigParameters.collection,"’ collection")}if(rawConfigParameters.genre&&(rawConfigParameters.title||rawConfigParameters.composer)){labelParts.push(" / ")}if(rawConfigParameters.composer){labelParts.push(rawConfigParameters.composer)}if(rawConfigParameters.title&&rawConfigParameters.composer){labelParts.push(" – ")}if(rawConfigParameters.title){labelParts.push(rawConfigParameters.title)}if(rawConfigParameters.year){labelParts.push(" (",rawConfigParameters.year,")")}if(rawConfigParameters.place){labelParts.push(" from ",rawConfigParameters.place)}if(labelParts.length){labelParts.unshift(": ")}if(!RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId){var cachedLibraryLabelsByLibraryId={};var $panelContents=$(Marionette.TemplateCache.get("#cgpma_collection_entity_default")());var $tickboxes=$panelContents.find(".cgpma__tickbox");$tickboxes.each(function(){var $tickbox=$(this);var id=$tickbox.getMod("cgpma_","id");cachedLibraryLabelsByLibraryId[id]=$tickbox.text()});RepresentationModule.getMasterById("entity._")._cachedLibraryLabelsByLibraryId=cachedLibraryLabelsByLibraryId}var libraries=rawConfigParameters.library.toLowerCase().split(";");var libraryLabels=[];for(var i=0;i'+this._generateHeaderLabel1(entityHeaderView)+"");entityHeaderView._$label2.html("being modified")}else{entityHeaderView._$label1.html(this._generateHeaderLabel1(entityHeaderView));entityHeaderView._$label2.html(this._generateHeaderLabel2(entityHeaderView))}},_generateHeaderLabel1:function(entityHeaderView){return""},_generateHeaderLabel2:function(entityHeaderView){return""},__coverTapActionThatUpdatesDynamicDerivedData:function(){var $cover=$(this);var visInstanceView=$cover.data("visInstanceView");var derivedDataToUpdate=$cover.data("attachedError").options.derivedDataToUpdate;switch(derivedDataToUpdate){case"entity":visInstanceView.dynamicDerivedConfigDataForEntity.update();break;case"view":visInstanceView.dynamicDerivedConfigDataForView.update();break;case"base":visInstanceView.dynamicDerivedVisInstanceDataForBase.update();break;case"overlay":visInstanceView.dynamicDerivedVisInstanceDataForOverlay.update();break;case"temp":visInstanceView.dynamicDerivedVisInstanceDataForTemp.update();break;default:throw _.str.sprintf("__coverTapActionThatUpdatesDynamicDerivedData cannot be called for derivedDataToUpdate = %s",derivedDataToUpdate)}},_verifyThatViewIsNotEmptyOrUnknown:function(visInstanceView){if(!visInstanceView._cachedViewMaster.options.canHaveBase){if(visInstanceView._cachedViewMaster.id=="view._unknown"){throw new RepresentationModule.Error({type:"view_unknown"})}if(visInstanceView._cachedViewMaster.inherit=="view._default"){throw new RepresentationModule.Error({type:"view_default"})}else throw"Unknown view master without base "+visInstanceView._cachedViewMaster.id}},verifyAllDataForVisInstanceBase:function(visInstanceView){},generateDynamicDerivedVisInstanceDataForBase:function(visInstanceView){return new RepresentationModule.DynamicDerivedVisInstanceData},verifyAllDataForVisInstanceOverlay:function(visInstanceView){},generateDynamicDerivedVisInstanceDataForOverlay:function(visInstanceView){if(visInstanceView._cachedViewMaster.generateDynamicDerivedVisInstanceDataForOverlay){return visInstanceView._cachedViewMaster.generateDynamicDerivedVisInstanceDataForOverlay(visInstanceView)}else{return new RepresentationModule.DynamicDerivedVisInstanceData}},verifyAllDataForVisInstanceTemp:function(visInstanceView){},generateDynamicDerivedVisInstanceDataForTemp:function(visInstanceView){return new RepresentationModule.DynamicDerivedVisInstanceData}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"entity._default",inherit:"entity._",_mapDerivedVisInstanceDataAttributesToDebugAPIQueryBoxes:function(viewMaster){if(viewMaster.options.overlayPerspectiveId){return[["top","base","apiRequestURI","apiResponse"],["bottom","overlay","apiRequestURI","apiResponse"]]}else{return[["everywhere","base","apiRequestURI","apiResponse"]]}}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"entity._pair",inherit:"entity._",defaultConfigParameterValues:{comparisonMode:"superposition"},prepareConfigGridPanelMainArea:function(configGridPanelView){var $comparisonModeTickBoxes=configGridPanelView._$mainArea.find("[data-comparison-mode]");configGridPanelView._$mainArea.data("$tickboxes_comparisonMode",$comparisonModeTickBoxes);$comparisonModeTickBoxes.each(function(){var $tickbox=$(this);var comparisonMode=$tickbox.data("comparison-mode");configGridPanelView._$mainArea.data("$tickbox_comparison-mode_"+comparisonMode,$tickbox)});RepresentationModule.getMasterById("entity._").prepareConfigGridPanelMainArea.apply(this,arguments)},__panelInputChangeValueHandler:function(event){if(event.type=="tickboxchangevalue"){var $thickbox=$(event.target);var comparisonMode=$thickbox.data("comparisonMode");if(comparisonMode){var configGridPanelView=$thickbox.data("configGridPanelView");if(!configGridPanelView._$mainArea.data("ignoreChangesInComparisonModeTickboxes")){var master=$thickbox.data("configGridPanelView")._masterBehindMainArea;master.planConfigParameterUpdateWithRespectToValueAndDefaultValue(configGridPanelView._cachedConfig,"comparisonMode",comparisonMode)}return}}RepresentationModule.getMasterById("entity._").__panelInputChangeValueHandler.apply(this,arguments)},syncConfigGridPanelMainArea:function(configGridPanelView,instant){var comparisonMode=this.getConfigParameterValueOrDefaultValue(configGridPanelView._cachedConfig,"comparisonMode").toLowerCase();var plannedComparisonMode=this.getConfigPlannedParameterValueOrDefaultValue(configGridPanelView._cachedConfig,"comparisonMode").toLowerCase();var comparisonModeHash=comparisonMode+plannedComparisonMode;if(configGridPanelView._$mainArea.data("comparisonModeHash")!=comparisonModeHash){configGridPanelView._$mainArea.data("comparisonModeHash",comparisonModeHash);configGridPanelView._$mainArea.data("ignoreChangesInComparisonModeTickboxes",true);configGridPanelView._$mainArea.data("$tickboxes_comparisonMode").each(function(){var $tickbox=$(this);var value=plannedComparisonMode==$tickbox.data("comparison-mode")?"1":"";var baseValue=comparisonMode!==plannedComparisonMode?value?"":"1":value?"1":"";$tickbox.tickbox("option",{value:value,baseValue:baseValue})});configGridPanelView._$mainArea.removeData("ignoreChangesInComparisonModeTickboxes")}RepresentationModule.getMasterById("entity._").syncConfigGridPanelMainArea.apply(this,arguments)},_mapDerivedVisInstanceDataAttributesToDebugAPIQueryBoxes:function(viewMaster){if(viewMaster.options.visInstanceSupportedComparisonModes.length){return[["left","base","apiRequestURIOnTheLeft","apiResponseOnTheLeft"],["right","base","apiRequestURIOnTheRight","apiResponseOnTheRight"]]}else{return[]}}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"entity.collection.default",inherit:"entity._default",defaultConfigParameterValues:{library:"",year:"",genre:"",composer:"",performer:"",title:"",place:"",collection:""},options:{availableLibraries:["bl","charm","ilm","mazurka"],librarySeparator:";",librarySeparatorAlternatives:/\,/g,presenceOfParameters:{title:["bl","charm","ilm","mazurka"],year:["bl","charm","mazurka"],composer:["bl","charm","mazurka"],performer:["bl","charm","mazurka"],collection:["bl"],genre:["ilm"],place:["bl"]}},extractCleanedConfigParameterValuesFromPlannedParameterValues:function(config){var result=RepresentationModule.getMasterById("entity._default").extractCleanedConfigParameterValuesFromPlannedParameterValues.apply(this,arguments);var presentParameterNames=_.keys(this._getPresentParameterNamesForLibrary(result.library));for(var parameterName in result){if(result.hasOwnProperty(parameterName)&¶meterName!=="library"){if(presentParameterNames.indexOf(parameterName)==-1){delete result[parameterName]}}}return result},_parseLibraryStringToArray:function(library){var fixedLibrary=_.str.trim(library).replace(this.options.librarySeparatorAlternatives,this.options.librarySeparator).toLowerCase();if(!fixedLibrary.length){return[]}else{return _.map(fixedLibrary.split(this.options.librarySeparator),function(v){return _.str.trim(v)})}},_parseLibraryStringToObject:function(library){var result={};var libraryAsArray=this._parseLibraryStringToArray(library);for(var i=0;i=0;--i){var availableLibrary=this.options.availableLibraries[i];var $tickbox=configGridPanelView._$mainArea.find(".cgpma__id_"+availableLibrary);configGridPanelView._$mainArea.data("$tickbox_library_"+availableLibrary,$tickbox);$tickbox.data("libraryId",availableLibrary)}RepresentationModule.getMasterById("entity._default").prepareConfigGridPanelMainArea.apply(this,arguments)},__panelInputChangeValueHandler:function(event){if(event.type=="tickboxchangevalue"){var $thickbox=$(event.target);var libraryId=$thickbox.data("libraryId");if(libraryId){var configGridPanelView=$thickbox.data("configGridPanelView");var $mainArea=configGridPanelView._$mainArea;var master=$thickbox.data("configGridPanelView")._masterBehindMainArea;if(!$mainArea.data("ignoreChangesInLibraryTickboxes")){var plannedLibraries=[];for(var i=0;i=0;--i){var availableLibrary=this.options.availableLibraries[i];var $tickbox=configGridPanelView._$mainArea.data("$tickbox_library_"+availableLibrary);var value=plannedLibraryAsObject[availableLibrary]!==undefined?"1":"";var baseValue=library!==plannedLibrary?value?"":"1":value?"1":"";$tickbox.tickbox("option",{value:value,baseValue:baseValue})}configGridPanelView._$mainArea.removeData("ignoreChangesInLibraryTickboxes");var presentParameterNames=_.keys(this._getPresentParameterNamesForLibrary(plannedLibrary));var absentParameterNames=_.difference(_.keys(this.options.presenceOfParameters),presentParameterNames);for(var i=0;i=0;--i){var shortcuts=arrayOfShortcuts[i];var oldAttributeValue=this.attributes[shortcuts[1]];var newAttributeValue=shortcuts[0];if(newAttributeValue!=oldAttributeValue){attributesToSet[shortcuts[1]]=newAttributeValue;if(oldAttributeValue){this.stopListening(oldAttributeValue,shortcuts[2])}if(newAttributeValue){this.listenTo(newAttributeValue,shortcuts[2],shortcuts[3])}}}this.set(attributesToSet)},__triggerChangeMethodOfDynamicDerivedConfigData:function(){this.dropCachedHash();this.trigger("change")},generateDynamicDerivedConfigData:function(entityConfig,configGrid){var optionsOfThisDynamicDerivedConfigData=_.clone(this.__optionsOfDynamicDerivedConfigData);optionsOfThisDynamicDerivedConfigData.entityConfig=entityConfig;optionsOfThisDynamicDerivedConfigData.configGrid=configGrid;var dynamicDerivedConfigData=new RepresentationModule.DynamicDerivedConfigData({collectionConfigOnTheLeft:null,collectionConfigOnTheRight:null,dynamicDefinitionForCollectionOnTheLeft:null,dynamicDefinitionForCollectionOnTheRight:null},optionsOfThisDynamicDerivedConfigData);dynamicDerivedConfigData.update=this.__updateMethodOfDynamicDerivedConfigData;dynamicDerivedConfigData._doUpdate=this.__doUpdateMethodOfDynamicDerivedConfigData;dynamicDerivedConfigData.triggerChange=this.__triggerChangeMethodOfDynamicDerivedConfigData;dynamicDerivedConfigData.listenTo(configGrid,"change_layout",dynamicDerivedConfigData.update);dynamicDerivedConfigData.update();return dynamicDerivedConfigData},__optionsOfDynamicDerivedVisInstanceDataForBase:{attributesToExcludeFromHash:["apiResponseOnTheLeft","apiResponseOnTheRight"],customHashSuffixGenerator:function(attributes){if(attributes.apiResponseOnTheLeft){return JSON.stringify(attributes.apiResponseOnTheLeft.errors)}else{return typeof attributes.apiResponseOnTheLeft}if(attributes.apiResponseOnTheRight){return JSON.stringify(attributes.apiResponseOnTheRight.errors)}else{return typeof attributes.apiResponseOnTheRight}}},__upateMethodOfDynamicDerivedVisInstanceDataForBase:function(force){var visInstanceView=this.options.visInstanceView;var _this=this;_.each(["Right","Left"],function(side){var dynamicDefinitionForCollection=visInstanceView.dynamicDerivedConfigDataForEntity.attributes["dynamicDefinitionForCollectionOnThe"+side];if(!dynamicDefinitionForCollection){return}var collectionId=dynamicDefinitionForCollection.attributes.id;var requestParams=_.clone(visInstanceView.dynamicDerivedConfigDataForView.attributes.basePerspectiveRequestParams);if(!requestParams||!collectionId){var attrs={};attrs["apiRequestURIOnThe"+side]=undefined;attrs["apiRequestParamsHashOnThe"+side]=undefined;attrs["apiResponseOnThe"+side]=undefined;_this.set(attrs);return}requestParams.cid=collectionId;var apiRequestParamsHash=JSON.stringify(requestParams);if(!force&&apiRequestParamsHash==_this.attributes["apiRequestParamsHashOnThe"+side]){return}var apiRequestURI=App.DataModule.CliopatriaAPI.request("getCollectionPerspective",requestParams,function(data){if(JSON.stringify(requestParams)!=_this.attributes["apiRequestParamsHashOnThe"+side]){return}var attrs={};attrs["apiRequestParamsHashOnThe"+side]=undefined;attrs["apiResponseOnThe"+side]=data;_this.set(attrs)});var attrs={};attrs["apiRequestURIOnThe"+side]=apiRequestURI;attrs["apiRequestParamsHashOnThe"+side]=apiRequestParamsHash;attrs["apiResponseOnThe"+side]=null;_this.set(attrs)})},generateDynamicDerivedVisInstanceDataForBase:function(visInstanceView){var viewMaster=visInstanceView._cachedViewMaster;if(!viewMaster.options.visInstanceSupportedComparisonModes.length){return new RepresentationModule.DynamicDerivedVisInstanceData({})}var optionsForThisDynamicDerivedVisInstanceDataForBase=_.clone(this.__optionsOfDynamicDerivedVisInstanceDataForBase);optionsForThisDynamicDerivedVisInstanceDataForBase.visInstanceView=visInstanceView;var dynamicDerivedVisInstanceDataForBase=new RepresentationModule.DynamicDerivedVisInstanceData({apiRequestURIOnTheLeft:undefined,apiRequestParamsHashOnTheLeft:undefined,apiResponseOnTheLeft:undefined,apiRequestURIOnTheRight:undefined,apiRequestParamsHashOnTheRight:undefined,apiResponseOnTheRight:undefined},optionsForThisDynamicDerivedVisInstanceDataForBase);dynamicDerivedVisInstanceDataForBase.update=this.__upateMethodOfDynamicDerivedVisInstanceDataForBase;dynamicDerivedVisInstanceDataForBase.listenTo(visInstanceView.dynamicDerivedConfigDataForEntity,"change",dynamicDerivedVisInstanceDataForBase.update);dynamicDerivedVisInstanceDataForBase.listenTo(visInstanceView.dynamicDerivedConfigDataForView,"change:basePerspectiveRequestParams",dynamicDerivedVisInstanceDataForBase.update);dynamicDerivedVisInstanceDataForBase.update();return dynamicDerivedVisInstanceDataForBase},verifyAllDataForVisInstanceBase:function(visInstanceView){this._verifyThatViewIsNotEmptyOrUnknown(visInstanceView);var viewMaster=visInstanceView._cachedViewMaster;if(!viewMaster.options.canHaveBase){return}var supportedComparisonModes=viewMaster.options.visInstanceSupportedComparisonModes;if(!supportedComparisonModes.length){throw new RepresentationModule.Error({type:"comparison_not-supported"})}if(!_.contains(supportedComparisonModes,viewMaster._getVisInstanceViewComparisonMode(visInstanceView))){throw new RepresentationModule.Error({type:"comparison_wrong-type",supportedTypes:supportedComparisonModes})}var attributesOfDerivedConfigDataForEntityOnTheLeft=visInstanceView.dynamicDerivedConfigDataForEntity.attributes;var attributesOfDerivedConfigDataForEntityOnTheRight=visInstanceView.dynamicDerivedConfigDataForEntity.attributes;var dynamicDefinitionForCollectionOnTheLeft=attributesOfDerivedConfigDataForEntityOnTheLeft.dynamicDefinitionForCollectionOnTheLeft;var dynamicDefinitionForCollectionOnTheRight=attributesOfDerivedConfigDataForEntityOnTheRight.dynamicDefinitionForCollectionOnTheRight;var attributesOfCollectionOnTheLeft=dynamicDefinitionForCollectionOnTheLeft?dynamicDefinitionForCollectionOnTheLeft.attributes:{};var attributesOfCollectionOnTheRight=dynamicDefinitionForCollectionOnTheRight?dynamicDefinitionForCollectionOnTheRight.attributes:{};if(attributesOfCollectionOnTheLeft.id===null||attributesOfCollectionOnTheRight.id===null){throw new RepresentationModule.Error({type:"data-preparing_entity-derived"})}if(attributesOfCollectionOnTheLeft.id===false||attributesOfCollectionOnTheRight.id===false){var apiErrorsOnTheLeft=attributesOfCollectionOnTheLeft.errors||[];var apiErrorsOnTheRight=attributesOfCollectionOnTheRight.errors||[];apiErrors=apiErrorsOnTheLeft.concat(apiErrorsOnTheRight);throw new RepresentationModule.Error({type:"api-error_entity-derived",apiErrors:apiErrors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"entity"})}if(attributesOfCollectionOnTheLeft.id===""||attributesOfCollectionOnTheLeft.hasOwnProperty("id")&&attributesOfCollectionOnTheLeft.id===undefined||(attributesOfCollectionOnTheRight.id===""||attributesOfCollectionOnTheRight.hasOwnProperty("id")&&attributesOfCollectionOnTheRight.id===undefined)){throw new RepresentationModule.Error({type:"collection_no-recordings"})}if(attributesOfCollectionOnTheLeft.id===undefined||attributesOfCollectionOnTheRight.id===undefined){throw new RepresentationModule.Error({type:"pair_incomplete"})}var attribytesOfDerivedVisInstanceDataForBase=visInstanceView.dynamicDerivedVisInstanceDataForBase.attributes;if(!attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheLeft||!attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheRight){throw new RepresentationModule.Error({type:"data-preparing_base"})}if(attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheLeft.errors||attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheRight.errors){var apiErrorsOnTheLeft=attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheLeft.errors||[];var apiErrorsOnTheRight=attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheRight.errors||[];var apiErrors=apiErrorsOnTheLeft.concat(apiErrorsOnTheRight);if(apiErrors[0]){var error0=apiErrors[0];if((error0.code==11||error0.code==12)&&!apiErrors[1]||apiErrors[1]&&(apiErrors[1].code==11||apiErrors[1].code==12)){throw new RepresentationModule.Error({type:"api-message_progress_base",apiErrors:apiErrors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"base"})}else if(error0.code==20&&!apiErrors[1]||apiErrors[1]&&apiErrors[1].code==20){return}}throw new RepresentationModule.Error({type:"api-error_base",apiErrors:apiErrors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"base"})}}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"entity.recording.default",inherit:"entity._default",__domEventHandlerToPlayAudio:function(){var $this=$(this);App.play($this.data("uri"))},prepareConfigGridPanelMainArea:function(configGridPanelView){var $audioLink=configGridPanelView._$mainArea.find(".cgpma__pseudo-link_action_audio");configGridPanelView._$mainArea.data("$audioLink",$audioLink);$audioLink.click(this.__domEventHandlerToPlayAudio);var $affiliationAudio=configGridPanelView._$mainArea.find(".cgpma__element_affiliation_audio");var $affiliationNoAudio=configGridPanelView._$mainArea.find(".cgpma__element_affiliation_no-audio");configGridPanelView._$mainArea.data("$affiliationAudio",$affiliationAudio);configGridPanelView._$mainArea.data("$affiliationNoAudio",$affiliationNoAudio)},syncConfigGridPanelMainArea:function(configGridPanelView,instant){var recordingAttributes=configGridPanelView._cachedDynamicDerivedConfigData.attributes.dynamicDefinitionForRecording.attributes;if(!recordingAttributes.label){configGridPanelView._$mainArea.data("$affiliationAudio").hide();configGridPanelView._$mainArea.data("$affiliationNoAudio").hide()}else{if(recordingAttributes.audio){configGridPanelView._$mainArea.data("$affiliationAudio").show();configGridPanelView._$mainArea.data("$affiliationNoAudio").hide();configGridPanelView._$mainArea.data("$audioLink").data("uri",configGridPanelView._cachedConfig.getParameterValue("recordingURI"))}else{configGridPanelView._$mainArea.data("$affiliationAudio").hide();configGridPanelView._$mainArea.data("$affiliationNoAudio").show()}}},_generateHeaderLabel1:function(viewHeader){var rawConfigParameters=viewHeader.options.config.attributes.parameters.attributes;var attributesOfDefinitionForOverlayedRecording=viewHeader.dynamicDerivedConfigData.attributes.dynamicDefinitionForRecording.attributes;var labelParts=[];var recordingURI=rawConfigParameters.recordingURI;if(recordingURI){var label=attributesOfDefinitionForOverlayedRecording.label;if(_.isString(label)){labelParts.push(label)}else if(label===null){labelParts.push("updating label...")}else{labelParts.push("could not get recording label")}}else{labelParts.push("no recording selected")}return labelParts.join("")},_generateHeaderLabel2:function(viewHeader){var attributesOfDefinitionForOverlayedRecording=viewHeader.dynamicDerivedConfigData.attributes.dynamicDefinitionForRecording.attributes;var labelParts=[];if(attributesOfDefinitionForOverlayedRecording.composer&&attributesOfDefinitionForOverlayedRecording.composer.length){labelParts.push("composed by ",attributesOfDefinitionForOverlayedRecording.composer[0])}return labelParts.join("")},__upateMethodOfDynamicDerivedConfigData:function(){if(this.attributes.dynamicDefinitionForRecording.attributes.errors){this.attributes.dynamicDefinitionForRecording.update(true)}},generateDynamicDerivedConfigData:function(config,configGrid){var dynamicDefinitionForRecording=App.dynamicDefinitionProviderForRecordings.get(config);var dynamicDerivedConfigData=new RepresentationModule.DynamicDerivedConfigData({dynamicDefinitionForRecording:dynamicDefinitionForRecording});dynamicDerivedConfigData.listenTo(dynamicDefinitionForRecording,"change",function(){dynamicDerivedConfigData.trigger("change:dynamicDefinitionForRecording");dynamicDerivedConfigData.trigger("change")});dynamicDerivedConfigData.update=this.__upateMethodOfDynamicDerivedConfigData;return dynamicDerivedConfigData},__optionsOfDynamicDerivedVisInstanceDataForBase:{attributesToExcludeFromHash:["apiResponse"],customHashSuffixGenerator:function(attributes){if(attributes.apiResponse){return JSON.stringify(attributes.apiResponse.errors)}else{return typeof attributes.apiResponse}}},__upateMethodOfDynamicDerivedVisInstanceDataForBase:function(force){var visInstanceView=this.options.visInstanceView;var dynamicDefinitionForRecording=visInstanceView.dynamicDerivedConfigDataForEntity.attributes.dynamicDefinitionForRecording;var entityConfig=visInstanceView.options.entityConfig;if(!dynamicDefinitionForRecording){return}if(this.attributes.apiResponse!==null){var recordingLabel=dynamicDefinitionForRecording.attributes.label;if(recordingLabel===undefined){this.set({apiRequestURI:undefined,apiRequestParamsHash:undefined,apiResponse:undefined});return}var requestParams=_.clone(visInstanceView.dynamicDerivedConfigDataForView.attributes.basePerspectiveRequestParams);if(!requestParams){return}requestParams.uri=entityConfig.attributes.parameters.attributes.recordingURI;var apiRequestParamsHash=JSON.stringify(requestParams);if(!force&&apiRequestParamsHash==this.attributes.apiRequestParamsHash){return}var _this=this;var apiRequestURI=App.DataModule.CliopatriaAPI.request("getRecordingPerspective",requestParams,function(data){if(JSON.stringify(requestParams)!=_this.attributes.apiRequestParamsHash){return}_this.set({apiRequestParamsHash:undefined,apiResponse:data})});this.set({apiRequestURI:apiRequestURI,apiRequestParamsHash:apiRequestParamsHash,apiResponse:null})}},generateDynamicDerivedVisInstanceDataForBase:function(visInstanceView){var optionsOfThisDynamicDerivedVisInstanceDataForBase=_.clone(this.__optionsOfDynamicDerivedVisInstanceDataForBase);optionsOfThisDynamicDerivedVisInstanceDataForBase.visInstanceView=visInstanceView;var dynamicDerivedVisInstanceDataForBase=new RepresentationModule.DynamicDerivedVisInstanceData({apiRequestURI:undefined,apiRequestParamsHash:undefined,apiResponse:undefined},optionsOfThisDynamicDerivedVisInstanceDataForBase);dynamicDerivedVisInstanceDataForBase.update=this.__upateMethodOfDynamicDerivedVisInstanceDataForBase;dynamicDerivedVisInstanceDataForBase.listenTo(visInstanceView.dynamicDerivedConfigDataForEntity,"change:dynamicDefinitionForRecording",dynamicDerivedVisInstanceDataForBase.update);dynamicDerivedVisInstanceDataForBase.listenTo(visInstanceView.dynamicDerivedConfigDataForView,"change:basePerspectiveRequestParams",dynamicDerivedVisInstanceDataForBase.update);dynamicDerivedVisInstanceDataForBase.update();return dynamicDerivedVisInstanceDataForBase},verifyAllDataForVisInstanceBase:function(visInstanceView){this._verifyThatViewIsNotEmptyOrUnknown(visInstanceView);var attributesOfDerivedConfigDataForEntity=visInstanceView.dynamicDerivedConfigDataForEntity.attributes;var dynamicDefinitionForRecording=attributesOfDerivedConfigDataForEntity.dynamicDefinitionForRecording;var attributesOfRecording=dynamicDefinitionForRecording?dynamicDefinitionForRecording.attributes:{};var attributesOfEntityConfig=visInstanceView.options.entityConfig.attributes.parameters.attributes;if(!attributesOfEntityConfig.recordingURI){throw new RepresentationModule.Error({type:"recording_undefined"})}if(attributesOfRecording.label===undefined){throw new RepresentationModule.Error({type:"api-error_entity-derived",apiErrors:attributesOfRecording.errors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"entity"})}var attribytesOfDerivedVisInstanceDataForBase=visInstanceView.dynamicDerivedVisInstanceDataForBase.attributes;if(!attribytesOfDerivedVisInstanceDataForBase.apiResponse){throw new RepresentationModule.Error({type:"data-preparing_base"})}if(attribytesOfDerivedVisInstanceDataForBase.apiResponse.errors){throw new RepresentationModule.Error({type:"api-error_base",apiErrors:attribytesOfDerivedVisInstanceDataForBase.apiResponse.errors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"base"})}}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"entity.recording.pair",inherit:"entity._pair",_generateHeaderLabel1:function(entityHeaderView){return _.str.sprintf("recording comparison (%s)",this.getConfigParameterValueOrDefaultValue(entityHeaderView.options.config,"comparisonMode"))},_generateHeaderLabel2:function(viewHeader){return""},__optionsOfDynamicDerivedConfigData:{attributesToExcludeFromHash:["recordingConfigOnTheLeft","recordingConfigOnTheRight"],customHashSuffixGenerator:function(attributes){return(attributes.recordingConfigOnTheLeft?attributes.recordingConfigOnTheLeft.getClientId():"x")+(attributes.recordingConfigOnTheRight?attributes.recordingConfigOnTheRight.getClientId():"x")}},__updateMethodOfDynamicDerivedConfigData:function(force){this._doUpdate(force);if(this.attributes.recordingConfigOnTheLeft&&this.attributes.dynamicDefinitionForRecordingOnTheLeft){return}if(this.attributes.recordingConfigOnTheRight&&this.attributes.dynamicDefinitionForRecordingOnTheRight){return}var _this=this;var interval=setInterval(function(){_this._doUpdate(force);if(_this.attributes.recordingConfigOnTheLeft&&!_this.attributes.dynamicDefinitionForRecordingOnTheLeft){return}if(_this.attributes.recordingConfigOnTheRight&&!_this.attributes.dynamicDefinitionForRecordingOnTheRight){return}clearInterval(interval)},50)},__doUpdateMethodOfDynamicDerivedConfigData:function(force){var entityConfig=this.options.entityConfig;var configGrid=this.options.configGrid;if(!entityConfig.getDimension()){return}var newRecordingConfigOnTheLeft=entityConfig;var newRecordingConfigOnTheRight=entityConfig;do{newRecordingConfigOnTheLeft=configGrid.getPrevEntityNeighbour(newRecordingConfigOnTheLeft)}while(newRecordingConfigOnTheLeft&&newRecordingConfigOnTheLeft.getParameterValue("kind")=="pair");do{newRecordingConfigOnTheRight=configGrid.getNextEntityNeighbour(newRecordingConfigOnTheRight)}while(newRecordingConfigOnTheRight&&newRecordingConfigOnTheRight.getParameterValue("kind")=="pair");var newDynamicDerivedConfigDataOnTheLeft=App.dynamicDerivedConfigDataProvider.get(newRecordingConfigOnTheLeft);var newDynamicDerivedConfigDataOnTheRight=App.dynamicDerivedConfigDataProvider.get(newRecordingConfigOnTheRight);var newDynamicDefinitionForRecordingOnTheLeft=newDynamicDerivedConfigDataOnTheLeft?newDynamicDerivedConfigDataOnTheLeft.attributes.dynamicDefinitionForRecording:null;var newDynamicDefinitionForRecordingOnTheRight=newDynamicDerivedConfigDataOnTheRight?newDynamicDerivedConfigDataOnTheRight.attributes.dynamicDefinitionForRecording:null;var attributesToSet={};var arrayOfShortcuts=[[newRecordingConfigOnTheLeft,"recordingConfigOnTheLeft","change:parameters",this.triggerChange],[newRecordingConfigOnTheRight,"recordingConfigOnTheRight","change:parameters",this.triggerChange],[newDynamicDefinitionForRecordingOnTheLeft,"dynamicDefinitionForRecordingOnTheLeft","change",this.triggerChange],[newDynamicDefinitionForRecordingOnTheRight,"dynamicDefinitionForRecordingOnTheRight","change",this.triggerChange]];for(var i=arrayOfShortcuts.length-1;i>=0;--i){var shortcuts=arrayOfShortcuts[i];var oldAttributeValue=this.attributes[shortcuts[1]];var newAttributeValue=shortcuts[0];if(newAttributeValue!=oldAttributeValue){attributesToSet[shortcuts[1]]=newAttributeValue;if(oldAttributeValue){this.stopListening(oldAttributeValue,shortcuts[2])}if(newAttributeValue){this.listenTo(newAttributeValue,shortcuts[2],shortcuts[3])}}}this.set(attributesToSet)},__triggerChangeMethodOfDynamicDerivedConfigData:function(){this.dropCachedHash();this.trigger("change")},generateDynamicDerivedConfigData:function(entityConfig,configGrid){var optionsOfThisDynamicDerivedConfigData=_.clone(this.__optionsOfDynamicDerivedConfigData);optionsOfThisDynamicDerivedConfigData.entityConfig=entityConfig;optionsOfThisDynamicDerivedConfigData.configGrid=configGrid;var dynamicDerivedConfigData=new RepresentationModule.DynamicDerivedConfigData({recordingConfigOnTheLeft:null,recordingConfigOnTheRight:null,dynamicDefinitionForRecordingOnTheLeft:null,dynamicDefinitionForRecordingOnTheRight:null},optionsOfThisDynamicDerivedConfigData);dynamicDerivedConfigData.update=this.__updateMethodOfDynamicDerivedConfigData;dynamicDerivedConfigData._doUpdate=this.__doUpdateMethodOfDynamicDerivedConfigData;dynamicDerivedConfigData.triggerChange=this.__triggerChangeMethodOfDynamicDerivedConfigData;dynamicDerivedConfigData.listenTo(configGrid,"change_layout",dynamicDerivedConfigData.update);dynamicDerivedConfigData.update();return dynamicDerivedConfigData},__optionsOfDynamicDerivedVisInstanceDataForBase:{attributesToExcludeFromHash:["apiResponseOnTheLeft","apiResponseOnTheRight"],customHashSuffixGenerator:function(attributes){if(attributes.apiResponseOnTheLeft){return JSON.stringify(attributes.apiResponseOnTheLeft.errors)}else{return typeof attributes.apiResponseOnTheLeft}if(attributes.apiResponseOnTheRight){return JSON.stringify(attributes.apiResponseOnTheRight.errors)}else{return typeof attributes.apiResponseOnTheRight}}},__upateMethodOfDynamicDerivedVisInstanceDataForBase:function(force){var visInstanceView=this.options.visInstanceView;var _this=this;_.each(["Right","Left"],function(side){var dynamicDefinitionForRecording=visInstanceView.dynamicDerivedConfigDataForEntity.attributes["dynamicDefinitionForRecordingOnThe"+side];if(!dynamicDefinitionForRecording){return}if(_this.attributes["apiResponseOnThe"+side]!==null){var recordingLabel=dynamicDefinitionForRecording.attributes.label;if(!recordingLabel){var attrs={};attrs["apiRequestURIOnThe"+side]=undefined;attrs["apiRequestParamsHashOnThe"+side]=undefined;attrs["apiResponseOnThe"+side]=undefined;_this.set(attrs);return}var requestParams=_.clone(visInstanceView.dynamicDerivedConfigDataForView.attributes.basePerspectiveRequestParams);if(!requestParams){return}requestParams.uri=visInstanceView.dynamicDerivedConfigDataForEntity.attributes["recordingConfigOnThe"+side].getParameterValue("recordingURI");var apiRequestParamsHash=JSON.stringify(requestParams);if(!force&&apiRequestParamsHash==_this.attributes["apiRequestParamsHashOnThe"+side]){return}var apiRequestURI=App.DataModule.CliopatriaAPI.request("getRecordingPerspective",requestParams,function(data){if(JSON.stringify(requestParams)!=_this.attributes["apiRequestParamsHashOnThe"+side]){return}var attrs={};attrs["apiRequestParamsHashOnThe"+side]=undefined;attrs["apiResponseOnThe"+side]=data;_this.set(attrs)});var attrs={};attrs["apiRequestURIOnThe"+side]=apiRequestURI;attrs["apiRequestParamsHashOnThe"+side]=apiRequestParamsHash;attrs["apiResponseOnThe"+side]=null;_this.set(attrs)}})},generateDynamicDerivedVisInstanceDataForBase:function(visInstanceView){var viewMaster=visInstanceView._cachedViewMaster;if(!viewMaster.options.visInstanceSupportedComparisonModes.length){return new RepresentationModule.DynamicDerivedVisInstanceData({})}var optionsForThisDynamicDerivedVisInstanceDataForBase=_.clone(this.__optionsOfDynamicDerivedVisInstanceDataForBase);optionsForThisDynamicDerivedVisInstanceDataForBase.visInstanceView=visInstanceView;var dynamicDerivedVisInstanceDataForBase=new RepresentationModule.DynamicDerivedVisInstanceData({apiRequestURIOnTheLeft:undefined,apiRequestParamsHashOnTheLeft:undefined,apiResponseOnTheLeft:undefined,apiRequestURIOnTheRight:undefined,apiRequestParamsHashOnTheRight:undefined,apiResponseOnTheRight:undefined},optionsForThisDynamicDerivedVisInstanceDataForBase);dynamicDerivedVisInstanceDataForBase.update=this.__upateMethodOfDynamicDerivedVisInstanceDataForBase;dynamicDerivedVisInstanceDataForBase.listenTo(visInstanceView.dynamicDerivedConfigDataForEntity,"change",dynamicDerivedVisInstanceDataForBase.update);dynamicDerivedVisInstanceDataForBase.listenTo(visInstanceView.dynamicDerivedConfigDataForView,"change:basePerspectiveRequestParams",dynamicDerivedVisInstanceDataForBase.update);dynamicDerivedVisInstanceDataForBase.update();return dynamicDerivedVisInstanceDataForBase},verifyAllDataForVisInstanceBase:function(visInstanceView){this._verifyThatViewIsNotEmptyOrUnknown(visInstanceView);var viewMaster=visInstanceView._cachedViewMaster;if(!viewMaster.options.canHaveBase){return}var supportedComparisonModes=viewMaster.options.visInstanceSupportedComparisonModes;if(!supportedComparisonModes.length){throw new RepresentationModule.Error({type:"comparison_not-supported"})}if(!_.contains(supportedComparisonModes,viewMaster._getVisInstanceViewComparisonMode(visInstanceView))){throw new RepresentationModule.Error({type:"comparison_wrong-type",supportedTypes:supportedComparisonModes})}var attributesOfDerivedConfigDataForEntityOnTheLeft=visInstanceView.dynamicDerivedConfigDataForEntity.attributes;var attributesOfDerivedConfigDataForEntityOnTheRight=visInstanceView.dynamicDerivedConfigDataForEntity.attributes;var dynamicDefinitionForRecordingOnTheLeft=attributesOfDerivedConfigDataForEntityOnTheLeft.dynamicDefinitionForRecordingOnTheLeft;var dynamicDefinitionForRecordingOnTheRight=attributesOfDerivedConfigDataForEntityOnTheRight.dynamicDefinitionForRecordingOnTheRight;var attributesOfRecordingOnTheLeft=dynamicDefinitionForRecordingOnTheLeft?dynamicDefinitionForRecordingOnTheLeft.attributes:{};var attributesOfRecordingOnTheRight=dynamicDefinitionForRecordingOnTheRight?dynamicDefinitionForRecordingOnTheRight.attributes:{};if(attributesOfRecordingOnTheLeft.label===null||attributesOfRecordingOnTheRight.label===null){throw new RepresentationModule.Error({type:"data-preparing_entity-derived"})}if(attributesOfRecordingOnTheLeft.label===false||attributesOfRecordingOnTheRight.label===false){var apiErrorsOnTheLeft=attributesOfRecordingOnTheLeft.errors||[];var apiErrorsOnTheRight=attributesOfRecordingOnTheRight.errors||[];apiErrors=apiErrorsOnTheLeft.concat(apiErrorsOnTheRight);throw new RepresentationModule.Error({type:"api-error_entity-derived",apiErrors:apiErrors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"entity"})}if(attributesOfRecordingOnTheLeft.label===undefined||attributesOfRecordingOnTheRight.label===undefined){throw new RepresentationModule.Error({type:"pair_incomplete"})}var attribytesOfDerivedVisInstanceDataForBase=visInstanceView.dynamicDerivedVisInstanceDataForBase.attributes;if(!attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheLeft||!attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheRight){throw new RepresentationModule.Error({type:"data-preparing_base"})}if(attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheLeft.errors||attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheRight.errors){var apiErrorsOnTheLeft=attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheLeft.errors||[];var apiErrorsOnTheRight=attribytesOfDerivedVisInstanceDataForBase.apiResponseOnTheRight.errors||[];var apiErrors=apiErrorsOnTheLeft.concat(apiErrorsOnTheRight);if(apiErrors[0]){var error0=apiErrors[0];if((error0.code==11||error0.code==12)&&!apiErrors[1]||apiErrors[1]&&(apiErrors[1].code==11||apiErrors[1].code==12)){throw new RepresentationModule.Error({type:"api-message_progress_base",apiErrors:apiErrors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"base"})}}throw new RepresentationModule.Error({type:"api-error_base",apiErrors:apiErrors,coverTapAction:this.__coverTapActionThatUpdatesDynamicDerivedData,derivedDataToUpdate:"base"})}}})})},Logger); +"use strict";App.module("RepresentationModule",function(RepresentationModule,App,Backbone,Marionette,$,_,Logger){RepresentationModule.addInitializer(function(options){RepresentationModule.registerMaster({id:"view._",inherit:"_",options:{canHaveBase:false,canHaveOverlay:false,canHaveTemp:false,visInstanceContentHeightMin:20,visInstanceContentHeightMax:20,visInstanceContentPaddingTop:5,visInstanceContentPaddingBottom:5,visInstanceSupportedComparisonModes:[],auxiliaryAssetsTimeout:2e3,auxiliaryAssetsCheckInterval:500},defaultConfigParameterValues:{widthToHeightRatio:2},initialize:function(){this.obtainAuxiliaryData();this.obtainAuxiliaryAssets()},setAuxiliaryDataStatus:function(status){this.auxiliaryDataStatus=status;this.trigger("change:auxiliaryResourcesStatus")},setAuxiliaryAssetsStatus:function(status){this.auxiliaryAssetsStatus=status;this.trigger("change:auxiliaryResourcesStatus")},getAuxiliaryResourcesStatus:function(){if(this.auxiliaryDataStatus=="fail"||this.auxiliaryAssetsStatus=="fail"){return"fail"}if(this.auxiliaryDataStatus=="pending"||this.auxiliaryAssetsStatus=="pending"){return"pending"}return""},obtainAuxiliaryAssets:function(){if(!this.options.auxiliaryAssets||!this.options.auxiliaryAssets.length){return}if(this.auxiliaryAssetsStatus){return}this.setAuxiliaryAssetsStatus("pending");var $body=$("body");_.each(this.options.auxiliaryAssets,function(assetURL){$body.append(" + + + +
+ +
+
+
+
+
+
+ {#
+
+
+
#} +
+
+
+
+
+
+
+
+
+
+
+
+
+ {#
+
+
+
#} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
The browser you are using is too old to draw interactive visualisations. Please update Internet Explorer or download an alternative browser (e.g. Chrome or Firefox).
+
+
+
+
+
+
+
+
+
+
+
+
+ {# emulate quicker load on first launch #} + +{% if (enableJasmine) %}
{% endif %} +{# #} +{% javascripts output='vendor.js' filter="?uglifyjs2" + '@DMLVendorAssetsBundle/Resources/assets/jquery/2.1.1/jquery.min.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.bemhelpers/2.1.3-modif/jquery.bemhelpers.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.sticky-kit/1.0.4/jquery.sticky-kit.min.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.hotkeys/0.8/jquery.hotkeys.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.mousewheel/3.1.12/jquery.mousewheel.min.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.textrange/1.3.0/jquery.textrange.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.preventMacBackScroll/modif/jquery.preventMacBackScroll.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.jplayer/2.9.2/jquery.jplayer.js' + + '@DMLVendorAssetsBundle/Resources/assets/jquery.ui/1.11.0/jquery.ui.min.js' + '@DMLVendorAssetsBundle/Resources/assets/scrollfix/0.1/scrollfix.js' + '@DMLVendorAssetsBundle/Resources/assets/jquery.scroll-to/dev/jquery.scroll-to.js' + + '@DMLVendorAssetsBundle/Resources/assets/js-logger/0.9.14/js-logger.js' + '@DMLVendorAssetsBundle/Resources/assets/underscore/1.8.2/underscore-min.js' + '@DMLVendorAssetsBundle/Resources/assets/underscore.string/2.3.3/underscore.string.min.js' + '@DMLVendorAssetsBundle/Resources/assets/backbone/1.1.2_modif/backbone.js' + '@DMLVendorAssetsBundle/Resources/assets/backbone.marionette/2.3.2/backbone.marionette.min.js' + '@DMLVendorAssetsBundle/Resources/assets/backbone.marionette/dev/TemplateCache.loadTemplate_fixed.js' + + '@DMLVendorAssetsBundle/Resources/assets/vega/2.2.6/d3.min.js' + '@DMLVendorAssetsBundle/Resources/assets/vega/2.2.6/d3.geo-projection.min.js' + '@DMLVendorAssetsBundle/Resources/assets/vega/2.2.6/topojson.js' + '@DMLVendorAssetsBundle/Resources/assets/vega/2.2.6/d3.layout.cloud.js' + '@DMLVendorAssetsBundle/Resources/assets/vega/2.2.6/vega.js' + +%} +{% if embedJs %}{% else %}{% endif %} +{% endjavascripts %} + +{# % javascripts output='vendor_ui.js' filter="?uglifyjs2" combine=true +%} +{% if embedJs %}{% else %}{% endif %} +{% endjavascripts %} + +{% javascripts output='vendor_backbone.js' filter="?uglifyjs2" combine=true +%} +{% if embedJs %}{% else %}{% endif %} +{% endjavascripts %#} + +{% javascripts output='app.js' filter="?uglifyjs2" + + '@DMLMainVisBundle/Resources/assets/legal.js' + + '@DMLMainVisBundle/Resources/assets/lib/jquery.eventsugar/jquery.eventsugar.js' + '@DMLMainVisBundle/Resources/assets/lib/jquery.ui/combobox.js' + '@DMLMainVisBundle/Resources/assets/lib/underscore.mixins/underscore.isEventAnAttemptToOpenANewTab.js' + '@DMLMainVisBundle/Resources/assets/lib/underscore.mixins/underscore.isSimpleObject.js' + '@DMLMainVisBundle/Resources/assets/lib/underscore.mixins/underscore.uniqueId.js' + '@DMLMainVisBundle/Resources/assets/lib/vega/vega.expr.centroid.js' + '@DMLMainVisBundle/Resources/assets/lib/vega/vega.filter.centroid.js' + + '@DMLMainVisBundle/Resources/assets/marionette/*.js' + '@DMLMainVisBundle/Resources/assets/marionette/*/*.js' + '@DMLMainVisBundle/Resources/assets/marionette/*/*/*.js' + '@DMLMainVisBundle/Resources/assets/marionette/*/*/*/*.js' +%} +{% if embedJs %}{% else %}{% endif %} +{% endjavascripts %} + +{# + +%} +#} +{# + +#} +{# + +#} + + +{% if (enableJasmine) %} +{% javascripts output='testing.js' filter="?uglifyjs2" + '@DMLVendorAssetsBundle/Resources/assets/jasmine/2.1.3/lib/jasmine-2.1.3/jasmine.js' + '@DMLVendorAssetsBundle/Resources/assets/jasmine/2.1.3/lib/jasmine-2.1.3/jasmine-html_modif.js' + + '@DMLMainVisBundle/Resources/assets/jasmine/boot.js' + '@DMLMainVisBundle/Resources/assets/jasmine/helpers.js' + '@DMLMainVisBundle/Resources/assets/jasmine/*/*.js' + '@DMLMainVisBundle/Resources/assets/jasmine/*/*/*.js' + '@DMLMainVisBundle/Resources/assets/jasmine/*/*/*/*.js' + %} + {% if embedJs %} + + {% else %} + + {% endif %} +{% endjavascripts %} +{% endif %} +{% include 'DMLMainVisBundle:Components/templates:_.html.twig' %} +{% include 'KachkaevCountersBundle::counters.html.twig' %} + + +{# + +#} +{% endspaceless %} + + \ No newline at end of file diff -r 000000000000 -r 493bcb69166c src/DML/MainVisBundle/Tests/Controller/DefaultControllerTest.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DML/MainVisBundle/Tests/Controller/DefaultControllerTest.php Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,17 @@ +request('GET', '/hello/Fabien'); + + $this->assertTrue($crawler->filter('html:contains("Hello Fabien")')->count() > 0); + } +} diff -r 000000000000 -r 493bcb69166c src/DML/VendorAssetsBundle/DMLVendorAssetsBundle.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DML/VendorAssetsBundle/DMLVendorAssetsBundle.php Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,9 @@ +root('dml_vendor_assets'); + + // Here you should define the parameters that are allowed to + // configure your bundle. See the documentation linked above for + // more information on that topic. + + return $treeBuilder; + } +} diff -r 000000000000 -r 493bcb69166c src/DML/VendorAssetsBundle/DependencyInjection/DMLVendorAssetsExtension.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DML/VendorAssetsBundle/DependencyInjection/DMLVendorAssetsExtension.php Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,25 @@ +processConfiguration($configuration, $configs); + } +} diff -r 000000000000 -r 493bcb69166c src/DML/VendorAssetsBundle/Resources/assets/backbone.marionette/2.1.0/backbone.marionette.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DML/VendorAssetsBundle/Resources/assets/backbone.marionette/2.1.0/backbone.marionette.min.js Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,23 @@ +// MarionetteJS (Backbone.Marionette) +// ---------------------------------- +// v2.1.0 +// +// Copyright (c)2014 Derick Bailey, Muted Solutions, LLC. +// Distributed under MIT license +// +// http://marionettejs.com + + +/*! + * Includes BabySitter + * https://github.com/marionettejs/backbone.babysitter/ + * + * Includes Wreqr + * https://github.com/marionettejs/backbone.wreqr/ + */ + + + +!function(a,b){if("function"==typeof define&&define.amd)define(["backbone","underscore"],function(c,d){return a.Marionette=b(a,c,d)});else if("undefined"!=typeof exports){var c=require("backbone"),d=require("underscore");module.exports=b(a,c,d)}else a.Marionette=b(a,a.Backbone,a._)}(this,function(a,b,c){"use strict";function d(a,b){var c=new Error(a);throw c.name=b||"Error",c}!function(a,b){var c=a.ChildViewContainer;return a.ChildViewContainer=function(a,b){var c=function(a){this._views={},this._indexByModel={},this._indexByCustom={},this._updateLength(),b.each(a,this.add,this)};b.extend(c.prototype,{add:function(a,b){var c=a.cid;return this._views[c]=a,a.model&&(this._indexByModel[a.model.cid]=c),b&&(this._indexByCustom[b]=c),this._updateLength(),this},findByModel:function(a){return this.findByModelCid(a.cid)},findByModelCid:function(a){var b=this._indexByModel[a];return this.findByCid(b)},findByCustom:function(a){var b=this._indexByCustom[a];return this.findByCid(b)},findByIndex:function(a){return b.values(this._views)[a]},findByCid:function(a){return this._views[a]},remove:function(a){var c=a.cid;return a.model&&delete this._indexByModel[a.model.cid],b.any(this._indexByCustom,function(a,b){return a===c?(delete this._indexByCustom[b],!0):void 0},this),delete this._views[c],this._updateLength(),this},call:function(a){this.apply(a,b.tail(arguments))},apply:function(a,c){b.each(this._views,function(d){b.isFunction(d[a])&&d[a].apply(d,c||[])})},_updateLength:function(){this.length=b.size(this._views)}});var d=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"];return b.each(d,function(a){c.prototype[a]=function(){var c=b.values(this._views),d=[c].concat(b.toArray(arguments));return b[a].apply(b,d)}}),c}(a,b),a.ChildViewContainer.VERSION="0.1.4",a.ChildViewContainer.noConflict=function(){return a.ChildViewContainer=c,this},a.ChildViewContainer}(b,c),function(a,b){var c=a.Wreqr,d=a.Wreqr={};return a.Wreqr.VERSION="1.3.1",a.Wreqr.noConflict=function(){return a.Wreqr=c,this},d.Handlers=function(a,b){var c=function(a){this.options=a,this._wreqrHandlers={},b.isFunction(this.initialize)&&this.initialize(a)};return c.extend=a.Model.extend,b.extend(c.prototype,a.Events,{setHandlers:function(a){b.each(a,function(a,c){var d=null;b.isObject(a)&&!b.isFunction(a)&&(d=a.context,a=a.callback),this.setHandler(c,a,d)},this)},setHandler:function(a,b,c){var d={callback:b,context:c};this._wreqrHandlers[a]=d,this.trigger("handler:add",a,b,c)},hasHandler:function(a){return!!this._wreqrHandlers[a]},getHandler:function(a){var b=this._wreqrHandlers[a];if(b)return function(){var a=Array.prototype.slice.apply(arguments);return b.callback.apply(b.context,a)}},removeHandler:function(a){delete this._wreqrHandlers[a]},removeAllHandlers:function(){this._wreqrHandlers={}}}),c}(a,b),d.CommandStorage=function(){var c=function(a){this.options=a,this._commands={},b.isFunction(this.initialize)&&this.initialize(a)};return b.extend(c.prototype,a.Events,{getCommands:function(a){var b=this._commands[a];return b||(b={command:a,instances:[]},this._commands[a]=b),b},addCommand:function(a,b){var c=this.getCommands(a);c.instances.push(b)},clearCommands:function(a){var b=this.getCommands(a);b.instances=[]}}),c}(),d.Commands=function(a){return a.Handlers.extend({storageType:a.CommandStorage,constructor:function(b){this.options=b||{},this._initializeStorage(this.options),this.on("handler:add",this._executeCommands,this);var c=Array.prototype.slice.call(arguments);a.Handlers.prototype.constructor.apply(this,c)},execute:function(a,b){a=arguments[0],b=Array.prototype.slice.call(arguments,1),this.hasHandler(a)?this.getHandler(a).apply(this,b):this.storage.addCommand(a,b)},_executeCommands:function(a,c,d){var e=this.storage.getCommands(a);b.each(e.instances,function(a){c.apply(d,a)}),this.storage.clearCommands(a)},_initializeStorage:function(a){var c,d=a.storageType||this.storageType;c=b.isFunction(d)?new d:d,this.storage=c}})}(d),d.RequestResponse=function(a){return a.Handlers.extend({request:function(){var a=arguments[0],b=Array.prototype.slice.call(arguments,1);return this.hasHandler(a)?this.getHandler(a).apply(this,b):void 0}})}(d),d.EventAggregator=function(a,b){var c=function(){};return c.extend=a.Model.extend,b.extend(c.prototype,a.Events),c}(a,b),d.Channel=function(){var c=function(b){this.vent=new a.Wreqr.EventAggregator,this.reqres=new a.Wreqr.RequestResponse,this.commands=new a.Wreqr.Commands,this.channelName=b};return b.extend(c.prototype,{reset:function(){return this.vent.off(),this.vent.stopListening(),this.reqres.removeAllHandlers(),this.commands.removeAllHandlers(),this},connectEvents:function(a,b){return this._connect("vent",a,b),this},connectCommands:function(a,b){return this._connect("commands",a,b),this},connectRequests:function(a,b){return this._connect("reqres",a,b),this},_connect:function(a,c,d){if(c){d=d||this;var e="vent"===a?"on":"setHandler";b.each(c,function(c,f){this[a][e](f,b.bind(c,d))},this)}}}),c}(d),d.radio=function(a){var c=function(){this._channels={},this.vent={},this.commands={},this.reqres={},this._proxyMethods()};b.extend(c.prototype,{channel:function(a){if(!a)throw new Error("Channel must receive a name");return this._getChannel(a)},_getChannel:function(b){var c=this._channels[b];return c||(c=new a.Channel(b),this._channels[b]=c),c},_proxyMethods:function(){b.each(["vent","commands","reqres"],function(a){b.each(d[a],function(b){this[a][b]=e(this,a,b)},this)},this)}});var d={vent:["on","off","trigger","once","stopListening","listenTo","listenToOnce"],commands:["execute","setHandler","setHandlers","removeHandler","removeAllHandlers"],reqres:["request","setHandler","setHandlers","removeHandler","removeAllHandlers"]},e=function(a,b,c){return function(d){var e=a._getChannel(d)[b],f=Array.prototype.slice.call(arguments,1);return e[c].apply(e,f)}};return new c}(d),a.Wreqr}(b,c);var e=a.Marionette,f=b.Marionette={};f.VERSION="2.1.0",f.noConflict=function(){return a.Marionette=e,this},b.Marionette=f,f.Deferred=b.$.Deferred;var g=Array.prototype.slice;return f.extend=b.Model.extend,f.getOption=function(a,b){if(a&&b){var c;return c=a.options&&void 0!==a.options[b]?a.options[b]:a[b]}},f.proxyGetOption=function(a){return f.getOption(this,a)},f.normalizeMethods=function(a){var b={};return c.each(a,function(a,d){c.isFunction(a)||(a=this[a]),a&&(b[d]=a)},this),b},f.normalizeUIKeys=function(a,b){return"undefined"!=typeof a?(c.each(c.keys(a),function(c){var d=/@ui\.[a-zA-Z_$0-9]*/g;c.match(d)&&(a[c.replace(d,function(a){return b[a.slice(4)]})]=a[c],delete a[c])}),a):void 0},f.actAsCollection=function(a,b){var d=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"];c.each(d,function(d){a[d]=function(){var a=c.values(c.result(this,b)),e=[a].concat(c.toArray(arguments));return c[d].apply(c,e)}})},f.triggerMethod=function(){function a(a,b,c){return c.toUpperCase()}var b=/(^|:)(\w)/gi,d=function(d){var e,f="on"+d.replace(b,a),g=this[f];return c.isFunction(g)&&(e=g.apply(this,c.tail(arguments))),c.isFunction(this.trigger)&&this.trigger.apply(this,arguments),e};return d}(),f.MonitorDOMRefresh=function(a){function d(a){a._isShown=!0,f(a)}function e(a){a._isRendered=!0,f(a)}function f(a){a._isShown&&a._isRendered&&g(a)&&c.isFunction(a.triggerMethod)&&a.triggerMethod("dom:refresh")}function g(c){return b.$.contains(a,c.el)}return function(a){a.listenTo(a,"show",function(){d(a)}),a.listenTo(a,"render",function(){e(a)})}}(document.documentElement),function(a){function b(a,b,e,f){var g=f.split(/\s+/);c.each(g,function(c){var f=a[c];f||d('Method "'+c+'" was configured as an event handler, but does not exist.'),a.listenTo(b,e,f)})}function e(a,b,c,d){a.listenTo(b,c,d)}function f(a,b,d,e){var f=e.split(/\s+/);c.each(f,function(c){var e=a[c];a.stopListening(b,d,e)})}function g(a,b,c,d){a.stopListening(b,c,d)}function h(a,b,d,e,f){b&&d&&(c.isFunction(d)&&(d=d.call(a)),c.each(d,function(d,g){c.isFunction(d)?e(a,b,g,d):f(a,b,g,d)}))}a.bindEntityEvents=function(a,c,d){h(a,c,d,e,b)},a.unbindEntityEvents=function(a,b,c){h(a,b,c,g,f)},a.proxyBindEntityEvents=function(b,c){return a.bindEntityEvents(this,b,c)},a.proxyUnbindEntityEvents=function(b,c){return a.unbindEntityEvents(this,b,c)}}(f),f.Callbacks=function(){this._deferred=f.Deferred(),this._callbacks=[]},c.extend(f.Callbacks.prototype,{add:function(a,b){var d=c.result(this._deferred,"promise");this._callbacks.push({cb:a,ctx:b}),d.then(function(c){b&&(c.context=b),a.call(c.context,c.options)})},run:function(a,b){this._deferred.resolve({options:a,context:b})},reset:function(){var a=this._callbacks;this._deferred=f.Deferred(),this._callbacks=[],c.each(a,function(a){this.add(a.cb,a.ctx)},this)}}),f.Controller=function(a){this.options=a||{},c.isFunction(this.initialize)&&this.initialize(this.options)},f.Controller.extend=f.extend,c.extend(f.Controller.prototype,b.Events,{destroy:function(){var a=g.call(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.triggerMethod.apply(this,["destroy"].concat(a)),this.stopListening(),this.off(),this},triggerMethod:f.triggerMethod,getOption:f.proxyGetOption}),f.Object=function(a){this.options=c.extend({},c.result(this,"options"),a),this.initialize(this.options)},f.Object.extend=f.extend,c.extend(f.Object.prototype,{initialize:function(){},destroy:function(){this.triggerMethod("before:destroy"),this.triggerMethod("destroy"),this.stopListening()},triggerMethod:f.triggerMethod,getOption:f.proxyGetOption,bindEntityEvents:f.proxyBindEntityEvents,unbindEntityEvents:f.proxyUnbindEntityEvents}),c.extend(f.Object.prototype,b.Events),f.Region=function(a){if(this.options=a||{},this.el=this.getOption("el"),this.el=this.el instanceof b.$?this.el[0]:this.el,this.el||d('An "el" must be specified for a region.',"NoElError"),this.$el=this.getEl(this.el),this.initialize){var c=g.apply(arguments);this.initialize.apply(this,c)}},c.extend(f.Region,{buildRegion:function(a,b){return c.isString(a)?this._buildRegionFromSelector(a,b):a.selector||a.el||a.regionClass?this._buildRegionFromObject(a,b):c.isFunction(a)?this._buildRegionFromRegionClass(a):void d("Improper region configuration type. Please refer to http://marionettejs.com/docs/marionette.region.html#region-configuration-types")},_buildRegionFromSelector:function(a,b){return new b({el:a})},_buildRegionFromObject:function(a,d){var e=a.regionClass||d,f=c.omit(a,"selector","regionClass");a.selector&&!f.el&&(f.el=a.selector);var g=new e(f);return a.parentEl&&(g.getEl=function(d){if(c.isObject(d))return b.$(d);var e=a.parentEl;return c.isFunction(e)&&(e=e()),e.find(d)}),g},_buildRegionFromRegionClass:function(a){return new a}}),c.extend(f.Region.prototype,b.Events,{show:function(a,b){this._ensureElement();var d=b||{},e=a!==this.currentView,f=!!d.preventDestroy,g=!!d.forceShow,h=!!this.currentView,i=!f&&e;i&&this.empty();var j=e||g;return j?(a.once("destroy",c.bind(this.empty,this)),a.render(),h&&this.triggerMethod("before:swap",a),this.triggerMethod("before:show",a),c.isFunction(a.triggerMethod)?a.triggerMethod("before:show"):this.triggerMethod.call(a,"before:show"),this.attachHtml(a),this.currentView=a,h&&this.triggerMethod("swap",a),this.triggerMethod("show",a),c.isFunction(a.triggerMethod)?a.triggerMethod("show"):this.triggerMethod.call(a,"show"),this):this},_ensureElement:function(){c.isObject(this.el)||(this.$el=this.getEl(this.el),this.el=this.$el[0]),this.$el&&0!==this.$el.length||d('An "el" '+this.$el.selector+" must exist in DOM")},getEl:function(a){return b.$(a)},attachHtml:function(a){this.el.innerHTML="",this.el.appendChild(a.el)},empty:function(){var a=this.currentView;if(a)return this.triggerMethod("before:empty",a),this._destroyView(),this.triggerMethod("empty",a),delete this.currentView,this},_destroyView:function(){var a=this.currentView;a.destroy&&!a.isDestroyed?a.destroy():a.remove&&a.remove()},attachView:function(a){return this.currentView=a,this},hasView:function(){return!!this.currentView},reset:function(){return this.empty(),this.$el&&(this.el=this.$el.selector),delete this.$el,this},getOption:f.proxyGetOption,triggerMethod:f.triggerMethod}),f.Region.extend=f.extend,f.RegionManager=function(a){var b=a.Controller.extend({constructor:function(b){this._regions={},a.Controller.call(this,b)},addRegions:function(a,b){c.isFunction(a)&&(a=a.apply(this,arguments));var d={};return c.each(a,function(a,e){c.isString(a)&&(a={selector:a}),a.selector&&(a=c.defaults({},a,b));var f=this.addRegion(e,a);d[e]=f},this),d},addRegion:function(b,d){var e,f=c.isObject(d),g=c.isString(d),h=!!d.selector;return e=g||f&&h?a.Region.buildRegion(d,a.Region):c.isFunction(d)?a.Region.buildRegion(d,a.Region):d,this.triggerMethod("before:add:region",b,e),this._store(b,e),this.triggerMethod("add:region",b,e),e},get:function(a){return this._regions[a]},getRegions:function(){return c.clone(this._regions)},removeRegion:function(a){var b=this._regions[a];return this._remove(a,b),b},removeRegions:function(){var a=this.getRegions();return c.each(this._regions,function(a,b){this._remove(b,a)},this),a},emptyRegions:function(){var a=this.getRegions();return c.each(a,function(a){a.empty()},this),a},destroy:function(){return this.removeRegions(),a.Controller.prototype.destroy.apply(this,arguments)},_store:function(a,b){this._regions[a]=b,this._setLength()},_remove:function(a,b){this.triggerMethod("before:remove:region",a,b),b.empty(),b.stopListening(),delete this._regions[a],this._setLength(),this.triggerMethod("remove:region",a,b)},_setLength:function(){this.length=c.size(this._regions)}});return a.actAsCollection(b.prototype,"_regions"),b}(f),f.TemplateCache=function(a){this.templateId=a},c.extend(f.TemplateCache,{templateCaches:{},get:function(a){var b=this.templateCaches[a];return b||(b=new f.TemplateCache(a),this.templateCaches[a]=b),b.load()},clear:function(){var a,b=g.call(arguments),c=b.length;if(c>0)for(a=0;c>a;a++)delete this.templateCaches[b[a]];else this.templateCaches={}}}),c.extend(f.TemplateCache.prototype,{load:function(){if(this.compiledTemplate)return this.compiledTemplate;var a=this.loadTemplate(this.templateId);return this.compiledTemplate=this.compileTemplate(a),this.compiledTemplate},loadTemplate:function(a){var c=b.$(a).html();return c&&0!==c.length||d('Could not find template: "'+a+'"',"NoTemplateError"),c},compileTemplate:function(a){return c.template(a)}}),f.Renderer={render:function(a,b){a||d("Cannot render the template since its false, null or undefined.","TemplateNotFoundError");var c;return(c="function"==typeof a?a:f.TemplateCache.get(a))(b)}},f.View=b.View.extend({constructor:function(a){c.bindAll(this,"render"),this.options=c.extend({},c.result(this,"options"),c.isFunction(a)?a.call(this):a),this.events=this.normalizeUIKeys(c.result(this,"events")),c.isObject(this.behaviors)&&new f.Behaviors(this),b.View.apply(this,arguments),f.MonitorDOMRefresh(this),this.listenTo(this,"show",this.onShowCalled)},getTemplate:function(){return this.getOption("template")},serializeModel:function(a){return a.toJSON.apply(a,g.call(arguments,1))},mixinTemplateHelpers:function(a){a=a||{};var b=this.getOption("templateHelpers");return c.isFunction(b)&&(b=b.call(this)),c.extend(a,b)},normalizeUIKeys:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return f.normalizeUIKeys(a,d||b)},configureTriggers:function(){if(this.triggers){var a={},b=this.normalizeUIKeys(c.result(this,"triggers"));return c.each(b,function(b,d){var e=c.isObject(b),f=e?b.event:b;a[d]=function(a){if(a){var c=a.preventDefault,d=a.stopPropagation,g=e?b.preventDefault:c,h=e?b.stopPropagation:d;g&&c&&c.apply(a),h&&d&&d.apply(a)}var i={view:this,model:this.model,collection:this.collection};this.triggerMethod(f,i)}},this),a}},delegateEvents:function(a){return this._delegateDOMEvents(a),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),this},_delegateDOMEvents:function(a){a=a||this.events,c.isFunction(a)&&(a=a.call(this)),a=this.normalizeUIKeys(a);var d={},e=c.result(this,"behaviorEvents")||{},f=this.configureTriggers();c.extend(d,e,a,f),b.View.prototype.delegateEvents.call(this,d)},undelegateEvents:function(){var a=g.call(arguments);return b.View.prototype.undelegateEvents.apply(this,a),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),this},onShowCalled:function(){},_ensureViewIsIntact:function(){if(this.isDestroyed){var a=new Error("Cannot use a view thats already been destroyed.");throw a.name="ViewDestroyedError",a}},destroy:function(){if(!this.isDestroyed){var a=g.call(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(a)),this.unbindUIElements(),this.remove(),this}},bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var a=c.result(this,"_uiBindings");this.ui={},c.each(c.keys(a),function(b){var c=a[b];this.ui[b]=this.$(c)},this)}},unbindUIElements:function(){this.ui&&this._uiBindings&&(c.each(this.ui,function(a,b){delete this.ui[b]},this),this.ui=this._uiBindings,delete this._uiBindings)},triggerMethod:f.triggerMethod,normalizeMethods:f.normalizeMethods,getOption:f.proxyGetOption,bindEntityEvents:f.proxyBindEntityEvents,unbindEntityEvents:f.proxyUnbindEntityEvents}),f.ItemView=f.View.extend({constructor:function(){f.View.apply(this,arguments)},serializeData:function(){var a={};return this.model?a=c.partial(this.serializeModel,this.model).apply(this,arguments):this.collection&&(a={items:c.partial(this.serializeCollection,this.collection).apply(this,arguments)}),a},serializeCollection:function(a){return a.toJSON.apply(a,g.call(arguments,1))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.triggerMethod("render",this),this},_renderTemplate:function(){var a=this.getTemplate();if(a!==!1){a||d("Cannot render the template since it is null or undefined.","UndefinedTemplateError");var b=this.serializeData();b=this.mixinTemplateHelpers(b);var c=f.Renderer.render(a,b,this);return this.attachElContent(c),this}},attachElContent:function(a){return this.$el.html(a),this},destroy:function(){return this.isDestroyed?void 0:f.View.prototype.destroy.apply(this,arguments)}}),f.CollectionView=f.View.extend({childViewEventPrefix:"childview",constructor:function(a){var b=a||{};this.sort=c.isUndefined(b.sort)?!0:b.sort,this._initChildViewStorage(),f.View.apply(this,arguments),this._initialEvents(),this.initRenderBuffer()},initRenderBuffer:function(){this.elBuffer=document.createDocumentFragment(),this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this,this.elBuffer),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&c.invoke(this._bufferedChildren,"triggerMethod","before:show")},_triggerShowBufferedChildren:function(){this._isShown&&(c.each(this._bufferedChildren,function(a){c.isFunction(a.triggerMethod)?a.triggerMethod("show"):f.triggerMethod.call(a,"show")}),this._bufferedChildren=[])},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this.render),this.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(a){this.destroyEmptyView();var b=this.getChildView(a),c=this.collection.indexOf(a);this.addChild(a,b,c)},_onCollectionRemove:function(a){var b=this.children.findByModel(a);this.removeChildView(b),this.checkEmpty()},onShowCalled:function(){this.children.each(function(a){c.isFunction(a.triggerMethod)?a.triggerMethod("show"):f.triggerMethod.call(a,"show")})},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.triggerMethod("render",this),this},resortView:function(){this.render()},_sortViews:function(){var a=this.collection.find(function(a,b){var c=this.children.findByModel(a);return!c||c._index!==b},this);a&&this.resortView()},_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren(),this.isEmpty(this.collection)?this.showEmptyView():(this.triggerMethod("before:render:collection",this),this.startBuffering(),this.showCollection(),this.endBuffering(),this.triggerMethod("render:collection",this))},showCollection:function(){var a;this.collection.each(function(b,c){a=this.getChildView(b),this.addChild(b,a,c)},this)},showEmptyView:function(){var a=this.getEmptyView();if(a&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var c=new b.Model;this.addEmptyView(c,a),this.triggerMethod("render:empty")}},destroyEmptyView:function(){this._showingEmptyView&&(this.destroyChildren(),delete this._showingEmptyView)},getEmptyView:function(){return this.getOption("emptyView")},addEmptyView:function(a,b){var d=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");c.isFunction(d)&&(d=d.call(this));var e=this.buildChildView(a,b,d);this._isShown&&this.triggerMethod.call(e,"before:show"),this.children.add(e),this.renderChildView(e,-1),this._isShown&&this.triggerMethod.call(e,"show")},getChildView:function(){var a=this.getOption("childView");return a||d('A "childView" must be specified',"NoChildViewError"),a},addChild:function(a,b,d){var e=this.getOption("childViewOptions");c.isFunction(e)&&(e=e.call(this,a,d));var f=this.buildChildView(a,b,e);return this._updateIndices(f,!0,d),this._addChildView(f,d),f},_updateIndices:function(a,b,c){this.sort&&(b?(a._index=c,this.children.each(function(b){b._index>=a._index&&b._index++})):this.children.each(function(b){b._index>=a._index&&b._index--}))},_addChildView:function(a,b){this.proxyChildEvents(a),this.triggerMethod("before:add:child",a),this.children.add(a),this.renderChildView(a,b),this._isShown&&!this.isBuffering&&(c.isFunction(a.triggerMethod)?a.triggerMethod("show"):f.triggerMethod.call(a,"show")),this.triggerMethod("add:child",a)},renderChildView:function(a,b){return a.render(),this.attachHtml(this,a,b),a},buildChildView:function(a,b,d){var e=c.extend({model:a},d);return new b(e)},removeChildView:function(a){return a&&(this.triggerMethod("before:remove:child",a),a.destroy?a.destroy():a.remove&&a.remove(),this.stopListening(a),this.children.remove(a),this.triggerMethod("remove:child",a),this._updateIndices(a,!1)),a},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(a,b){a.$el.append(b)},attachHtml:function(a,b,c){a.isBuffering?(a.elBuffer.appendChild(b.el),a._bufferedChildren.push(b)):a._insertBefore(b,c)||a._insertAfter(b)},_insertBefore:function(a,b){var c,d=this.sort&&barguments.length;o&&(s=r,r=s[0]);var h,a="on"+r.replace(t,e),l=n[a];return i.isFunction(l)&&(h=l.apply(n,o?i.rest(s):s)),i.isFunction(n.trigger)&&(o+s.length>1?n.trigger.apply(n,o?s:[r].concat(i.rest(s,0))):n.trigger(r)),h}}(),r.triggerMethod=function(){return r._triggerMethod(this,arguments)},r.triggerMethodOn=function(e){var t=i.isFunction(e.triggerMethod)?e.triggerMethod:r.triggerMethod;return t.apply(e,i.rest(arguments))},r.MonitorDOMRefresh=function(e){function t(){e._isShown=!0,s()}function n(){e._isRendered=!0,s()}function s(){e._isShown&&e._isRendered&&r.isNodeAttached(e.el)&&i.isFunction(e.triggerMethod)&&e.triggerMethod("dom:refresh")}e.on({show:t,render:n})},function(e){function t(t,n,r,s){var o=s.split(/\s+/);i.each(o,function(i){var s=t[i];if(!s)throw new e.Error('Method "'+i+'" was configured as an event handler, but does not exist.');t.listenTo(n,r,s)})}function n(e,t,i,n){e.listenTo(t,i,n)}function r(e,t,n,r){var s=r.split(/\s+/);i.each(s,function(i){var r=e[i];e.stopListening(t,n,r)})}function s(e,t,i,n){e.stopListening(t,i,n)}function o(t,n,r,s,o){if(n&&r){if(!i.isObject(r))throw new e.Error({message:"Bindings must be an object or function.",url:"marionette.functions.html#marionettebindentityevents"});r=e._getValue(r,t),i.each(r,function(e,r){i.isFunction(e)?s(t,n,r,e):o(t,n,r,e)})}}e.bindEntityEvents=function(e,i,r){o(e,i,r,n,t)},e.unbindEntityEvents=function(e,t,i){o(e,t,i,s,r)},e.proxyBindEntityEvents=function(t,i){return e.bindEntityEvents(this,t,i)},e.proxyUnbindEntityEvents=function(t,i){return e.unbindEntityEvents(this,t,i)}}(r);var o=["description","fileName","lineNumber","name","message","number"];return r.Error=r.extend.call(Error,{urlRoot:"http://marionettejs.com/docs/v"+r.VERSION+"/",constructor:function(e,t){i.isObject(e)?(t=e,e=t.message):t||(t={});var n=Error.call(this,e);i.extend(this,i.pick(n,o),i.pick(t,o)),this.captureStackTrace(),t.url&&(this.url=this.urlRoot+t.url)},captureStackTrace:function(){Error.captureStackTrace&&Error.captureStackTrace(this,r.Error)},toString:function(){return this.name+": "+this.message+(this.url?" See: "+this.url:"")}}),r.Error.extend=r.extend,r.Callbacks=function(){this._deferred=r.Deferred(),this._callbacks=[]},i.extend(r.Callbacks.prototype,{add:function(e,t){var n=i.result(this._deferred,"promise");this._callbacks.push({cb:e,ctx:t}),n.then(function(i){t&&(i.context=t),e.call(i.context,i.options)})},run:function(e,t){this._deferred.resolve({options:e,context:t})},reset:function(){var e=this._callbacks;this._deferred=r.Deferred(),this._callbacks=[],i.each(e,function(e){this.add(e.cb,e.ctx)},this)}}),r.Controller=function(e){this.options=e||{},i.isFunction(this.initialize)&&this.initialize(this.options)},r.Controller.extend=r.extend,i.extend(r.Controller.prototype,t.Events,{destroy:function(){return r._triggerMethod(this,"before:destroy",arguments),r._triggerMethod(this,"destroy",arguments),this.stopListening(),this.off(),this},triggerMethod:r.triggerMethod,getOption:r.proxyGetOption}),r.Object=function(e){this.options=i.extend({},i.result(this,"options"),e),this.initialize.apply(this,arguments)},r.Object.extend=r.extend,i.extend(r.Object.prototype,t.Events,{initialize:function(){},destroy:function(){this.triggerMethod("before:destroy"),this.triggerMethod("destroy"),this.stopListening()},triggerMethod:r.triggerMethod,getOption:r.proxyGetOption,bindEntityEvents:r.proxyBindEntityEvents,unbindEntityEvents:r.proxyUnbindEntityEvents}),r.Region=r.Object.extend({constructor:function(e){if(this.options=e||{},this.el=this.getOption("el"),this.el=this.el instanceof t.$?this.el[0]:this.el,!this.el)throw new r.Error({name:"NoElError",message:'An "el" must be specified for a region.'});this.$el=this.getEl(this.el),r.Object.call(this,e)},show:function(e,t){if(this._ensureElement()){this._ensureViewIsIntact(e);var i=t||{},n=e!==this.currentView,s=!!i.preventDestroy,o=!!i.forceShow,h=!!this.currentView,a=n&&!s,l=n||o;if(h&&this.triggerMethod("before:swapOut",this.currentView,this,t),this.currentView&&delete this.currentView._parent,a?this.empty():h&&l&&this.currentView.off("destroy",this.empty,this),l){e.once("destroy",this.empty,this),e.render(),e._parent=this,h&&this.triggerMethod("before:swap",e,this,t),this.triggerMethod("before:show",e,this,t),r.triggerMethodOn(e,"before:show",e,this,t),h&&this.triggerMethod("swapOut",this.currentView,this,t);var u=r.isNodeAttached(this.el),d=[],c=i.triggerBeforeAttach||this.triggerBeforeAttach,g=i.triggerAttach||this.triggerAttach;return u&&c&&(d=this._displayedViews(e),this._triggerAttach(d,"before:")),this.attachHtml(e),this.currentView=e,u&&g&&(d=this._displayedViews(e),this._triggerAttach(d)),h&&this.triggerMethod("swap",e,this,t),this.triggerMethod("show",e,this,t),r.triggerMethodOn(e,"show",e,this,t),this}return this}},triggerBeforeAttach:!0,triggerAttach:!0,_triggerAttach:function(e,t){var n=(t||"")+"attach";i.each(e,function(e){r.triggerMethodOn(e,n,e,this)},this)},_displayedViews:function(e){return i.union([e],i.result(e,"_getNestedViews")||[])},_ensureElement:function(){if(i.isObject(this.el)||(this.$el=this.getEl(this.el),this.el=this.$el[0]),!this.$el||0===this.$el.length){if(this.getOption("allowMissingEl"))return!1;throw new r.Error('An "el" '+this.$el.selector+" must exist in DOM")}return!0},_ensureViewIsIntact:function(e){if(!e)throw new r.Error({name:"ViewNotValid",message:"The view passed is undefined and therefore invalid. You must pass a view instance to show."});if(e.isDestroyed)throw new r.Error({name:"ViewDestroyedError",message:'View (cid: "'+e.cid+'") has already been destroyed and cannot be used.'})},getEl:function(e){return t.$(e,r._getValue(this.options.parentEl,this))},attachHtml:function(e){this.$el.contents().detach(),this.el.appendChild(e.el)},empty:function(){var e=this.currentView;if(e)return e.off("destroy",this.empty,this),this.triggerMethod("before:empty",e),this._destroyView(),this.triggerMethod("empty",e),delete this.currentView,this},_destroyView:function(){var e=this.currentView;e.destroy&&!e.isDestroyed?e.destroy():e.remove&&(e.remove(),e.isDestroyed=!0)},attachView:function(e){return this.currentView=e,this},hasView:function(){return!!this.currentView},reset:function(){return this.empty(),this.$el&&(this.el=this.$el.selector),delete this.$el,this}},{buildRegion:function(e,t){if(i.isString(e))return this._buildRegionFromSelector(e,t);if(e.selector||e.el||e.regionClass)return this._buildRegionFromObject(e,t);if(i.isFunction(e))return this._buildRegionFromRegionClass(e);throw new r.Error({message:"Improper region configuration type.",url:"marionette.region.html#region-configuration-types"})},_buildRegionFromSelector:function(e,t){return new t({el:e})},_buildRegionFromObject:function(e,t){var n=e.regionClass||t,r=i.omit(e,"selector","regionClass");return e.selector&&!r.el&&(r.el=e.selector),new n(r)},_buildRegionFromRegionClass:function(e){return new e}}),r.RegionManager=r.Controller.extend({constructor:function(e){this._regions={},r.Controller.call(this,e),this.addRegions(this.getOption("regions"))},addRegions:function(e,t){return e=r._getValue(e,this,arguments),i.reduce(e,function(e,n,r){return i.isString(n)&&(n={selector:n}),n.selector&&(n=i.defaults({},n,t)),e[r]=this.addRegion(r,n),e},{},this)},addRegion:function(e,t){var i;return i=t instanceof r.Region?t:r.Region.buildRegion(t,r.Region),this.triggerMethod("before:add:region",e,i),i._parent=this,this._store(e,i),this.triggerMethod("add:region",e,i),i},get:function(e){return this._regions[e]},getRegions:function(){return i.clone(this._regions)},removeRegion:function(e){var t=this._regions[e];return this._remove(e,t),t},removeRegions:function(){var e=this.getRegions();return i.each(this._regions,function(e,t){this._remove(t,e)},this),e},emptyRegions:function(){var e=this.getRegions();return i.invoke(e,"empty"),e},destroy:function(){return this.removeRegions(),r.Controller.prototype.destroy.apply(this,arguments)},_store:function(e,t){this._regions[e]=t,this._setLength()},_remove:function(e,t){this.triggerMethod("before:remove:region",e,t),t.empty(),t.stopListening(),delete t._parent,delete this._regions[e],this._setLength(),this.triggerMethod("remove:region",e,t)},_setLength:function(){this.length=i.size(this._regions)}}),r.actAsCollection(r.RegionManager.prototype,"_regions"),r.TemplateCache=function(e){this.templateId=e},i.extend(r.TemplateCache,{templateCaches:{},get:function(e){var t=this.templateCaches[e];return t||(t=new r.TemplateCache(e),this.templateCaches[e]=t),t.load()},clear:function(){var e,t=i.toArray(arguments),n=t.length;if(n>0)for(e=0;n>e;e++)delete this.templateCaches[t[e]];else this.templateCaches={}}}),i.extend(r.TemplateCache.prototype,{load:function(){if(this.compiledTemplate)return this.compiledTemplate;var e=this.loadTemplate(this.templateId);return this.compiledTemplate=this.compileTemplate(e),this.compiledTemplate},loadTemplate:function(e){var i=t.$(e).html();if(!i||0===i.length)throw new r.Error({name:"NoTemplateError",message:'Could not find template: "'+e+'"'});return i},compileTemplate:function(e){return i.template(e)}}),r.Renderer={render:function(e,t){if(!e)throw new r.Error({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var n=i.isFunction(e)?e:r.TemplateCache.get(e);return n(t)}},r.View=t.View.extend({isDestroyed:!1,constructor:function(e){i.bindAll(this,"render"),e=r._getValue(e,this),this.options=i.extend({},i.result(this,"options"),e),this._behaviors=r.Behaviors(this),t.View.apply(this,arguments),r.MonitorDOMRefresh(this),this.on("show",this.onShowCalled)},getTemplate:function(){return this.getOption("template")},serializeModel:function(e){return e.toJSON.apply(e,i.rest(arguments))},mixinTemplateHelpers:function(e){e=e||{};var t=this.getOption("templateHelpers");return t=r._getValue(t,this),i.extend(e,t)},normalizeUIKeys:function(e){var t=i.result(this,"_uiBindings");return r.normalizeUIKeys(e,t||i.result(this,"ui"))},normalizeUIValues:function(e){var t=i.result(this,"ui"),n=i.result(this,"_uiBindings");return r.normalizeUIValues(e,n||t)},configureTriggers:function(){if(this.triggers){var e=this.normalizeUIKeys(i.result(this,"triggers"));return i.reduce(e,function(e,t,i){return e[i]=this._buildViewTrigger(t),e},{},this)}},delegateEvents:function(e){return this._delegateDOMEvents(e),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),i.each(this._behaviors,function(e){e.bindEntityEvents(this.model,e.getOption("modelEvents")),e.bindEntityEvents(this.collection,e.getOption("collectionEvents"))},this),this},_delegateDOMEvents:function(e){var n=r._getValue(e||this.events,this);n=this.normalizeUIKeys(n),i.isUndefined(e)&&(this.events=n);var s={},o=i.result(this,"behaviorEvents")||{},h=this.configureTriggers(),a=i.result(this,"behaviorTriggers")||{};i.extend(s,o,n,h,a),t.View.prototype.delegateEvents.call(this,s)},undelegateEvents:function(){return t.View.prototype.undelegateEvents.apply(this,arguments),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),i.each(this._behaviors,function(e){e.unbindEntityEvents(this.model,e.getOption("modelEvents")),e.unbindEntityEvents(this.collection,e.getOption("collectionEvents"))},this),this},onShowCalled:function(){},_ensureViewIsIntact:function(){if(this.isDestroyed)throw new r.Error({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(!this.isDestroyed){var e=i.toArray(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(e)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(e)),this.unbindUIElements(),this.remove(),i.invoke(this._behaviors,"destroy",e),this}},bindUIElements:function(){this._bindUIElements(),i.invoke(this._behaviors,this._bindUIElements)},_bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var e=i.result(this,"_uiBindings");this.ui={},i.each(e,function(e,t){this.ui[t]=this.$(e)},this)}},unbindUIElements:function(){this._unbindUIElements(),i.invoke(this._behaviors,this._unbindUIElements)},_unbindUIElements:function(){this.ui&&this._uiBindings&&(i.each(this.ui,function(e,t){delete this.ui[t]},this),this.ui=this._uiBindings,delete this._uiBindings)},_buildViewTrigger:function(e){var t=i.isObject(e),n=i.defaults({},t?e:{},{preventDefault:!0,stopPropagation:!0}),r=t?n.event:e;return function(e){e&&(e.preventDefault&&n.preventDefault&&e.preventDefault(),e.stopPropagation&&n.stopPropagation&&e.stopPropagation());var t={view:this,model:this.model,collection:this.collection};this.triggerMethod(r,t)}},setElement:function(){var e=t.View.prototype.setElement.apply(this,arguments);return i.invoke(this._behaviors,"proxyViewProperties",this),e},triggerMethod:function(){for(var e=r._triggerMethod,t=e(this,arguments),i=this._behaviors,n=0,s=i&&i.length;s>n;n++)e(i[n],arguments);return t},_getImmediateChildren:function(){return[]},_getNestedViews:function(){var e=this._getImmediateChildren();return e.length?i.reduce(e,function(e,t){return t._getNestedViews?e.concat(t._getNestedViews()):e},e):e},normalizeMethods:r.normalizeMethods,getOption:r.proxyGetOption,bindEntityEvents:r.proxyBindEntityEvents,unbindEntityEvents:r.proxyUnbindEntityEvents}),r.ItemView=r.View.extend({constructor:function(){r.View.apply(this,arguments)},serializeData:function(){if(!this.model&&!this.collection)return{};var e=[this.model||this.collection];return arguments.length&&e.push.apply(e,arguments),this.model?this.serializeModel.apply(this,e):{items:this.serializeCollection.apply(this,e)}},serializeCollection:function(e){return e.toJSON.apply(e,i.rest(arguments))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.triggerMethod("render",this),this},_renderTemplate:function(){var e=this.getTemplate();if(e!==!1){if(!e)throw new r.Error({name:"UndefinedTemplateError",message:"Cannot render the template since it is null or undefined."});var t=this.serializeData();t=this.mixinTemplateHelpers(t);var i=r.Renderer.render(e,t,this);return this.attachElContent(i),this}},attachElContent:function(e){return this.$el.html(e),this}}),r.CollectionView=r.View.extend({childViewEventPrefix:"childview",constructor:function(e){var t=e||{};i.isUndefined(this.sort)&&(this.sort=i.isUndefined(t.sort)?!0:t.sort),this.once("render",this._initialEvents),this._initChildViewStorage(),r.View.apply(this,arguments),this.initRenderBuffer()},initRenderBuffer:function(){this.elBuffer=document.createDocumentFragment(),this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this,this.elBuffer),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&i.each(this._bufferedChildren,i.partial(this._triggerMethodOnChild,"before:show"))},_triggerShowBufferedChildren:function(){this._isShown&&(i.each(this._bufferedChildren,i.partial(this._triggerMethodOnChild,"show")),this._bufferedChildren=[])},_triggerMethodOnChild:function(e,t){r.triggerMethodOn(t,e)},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this.render),this.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(e){this.destroyEmptyView();var t=this.getChildView(e),i=this.collection.indexOf(e);this.addChild(e,t,i)},_onCollectionRemove:function(e){var t=this.children.findByModel(e);this.removeChildView(t),this.checkEmpty()},onShowCalled:function(){this.children.each(i.partial(this._triggerMethodOnChild,"show"))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.triggerMethod("render",this),this},resortView:function(){this.render()},_sortViews:function(){var e=this.collection.find(function(e,t){var i=this.children.findByModel(e);return!i||i._index!==t},this);e&&this.resortView()},_emptyViewIndex:-1,_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren(),this.isEmpty(this.collection)?this.showEmptyView():(this.triggerMethod("before:render:collection",this),this.startBuffering(),this.showCollection(),this.endBuffering(),this.triggerMethod("render:collection",this))},showCollection:function(){var e;this.collection.each(function(t,i){e=this.getChildView(t),this.addChild(t,e,i)},this)},showEmptyView:function(){var e=this.getEmptyView();if(e&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var i=new t.Model;this.addEmptyView(i,e),this.triggerMethod("render:empty")}},destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty"),this.destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty"))},getEmptyView:function(){return this.getOption("emptyView")},addEmptyView:function(e,t){var n=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");i.isFunction(n)&&(n=n.call(this,e,this._emptyViewIndex));var s=this.buildChildView(e,t,n);s._parent=this,this.proxyChildEvents(s),this._isShown&&r.triggerMethodOn(s,"before:show"),this.children.add(s),this.renderChildView(s,this._emptyViewIndex),this._isShown&&r.triggerMethodOn(s,"show")},getChildView:function(){var e=this.getOption("childView");if(!e)throw new r.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return e},addChild:function(e,t,i){var n=this.getOption("childViewOptions");n=r._getValue(n,this,[e,i]);var s=this.buildChildView(e,t,n);return this._updateIndices(s,!0,i),this._addChildView(s,i),s._parent=this,s},_updateIndices:function(e,t,i){this.sort&&(t&&(e._index=i),this.children.each(function(i){i._index>=e._index&&(i._index+=t?1:-1)}))},_addChildView:function(e,t){this.proxyChildEvents(e),this.triggerMethod("before:add:child",e),this.children.add(e),this.renderChildView(e,t),this._isShown&&!this.isBuffering&&r.triggerMethodOn(e,"show"),this.triggerMethod("add:child",e)},renderChildView:function(e,t){return e.render(),this.attachHtml(this,e,t),e},buildChildView:function(e,t,n){var r=i.extend({model:e},n);return new t(r)},removeChildView:function(e){return e&&(this.triggerMethod("before:remove:child",e),e.destroy?e.destroy():e.remove&&e.remove(),delete e._parent,this.stopListening(e),this.children.remove(e),this.triggerMethod("remove:child",e),this._updateIndices(e,!1)),e},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(e,t){e.$el.append(t)},attachHtml:function(e,t,i){e.isBuffering?(e.elBuffer.appendChild(t.el),e._bufferedChildren.push(t)):e._insertBefore(t,i)||e._insertAfter(t)},_insertBefore:function(e,t){var i,n=this.sort&&this.children.length-1>t;return n&&(i=this.children.find(function(e){return e._index===t+1})),i?(i.$el.before(e.el),!0):!1},_insertAfter:function(e){this.$el.append(e.el)},_initChildViewStorage:function(){this.children=new t.ChildViewContainer},destroy:function(){return this.isDestroyed?void 0:(this.triggerMethod("before:destroy:collection"),this.destroyChildren(),this.triggerMethod("destroy:collection"),r.View.prototype.destroy.apply(this,arguments))},destroyChildren:function(){var e=this.children.map(i.identity);return this.children.each(this.removeChildView,this),this.checkEmpty(),e},proxyChildEvents:function(e){var t=this.getOption("childViewEventPrefix");this.listenTo(e,"all",function(){var n=i.toArray(arguments),r=n[0],s=this.normalizeMethods(i.result(this,"childEvents"));n[0]=t+":"+r,n.splice(1,0,e),s!==void 0&&i.isFunction(s[r])&&s[r].apply(this,n.slice(1)),this.triggerMethod.apply(this,n)},this)},_getImmediateChildren:function(){return i.values(this.children._views)}}),r.CompositeView=r.CollectionView.extend({constructor:function(){r.CollectionView.apply(this,arguments)},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this._renderChildren),this.sort&&this.listenTo(this.collection,"sort",this._sortViews))},getChildView:function(){var e=this.getOption("childView")||this.constructor;return e},serializeData:function(){var e={};return this.model&&(e=i.partial(this.serializeModel,this.model).apply(this,arguments)),e},render:function(){return this._ensureViewIsIntact(),this.isRendered=!0,this.resetChildViewContainer(),this.triggerMethod("before:render",this),this._renderTemplate(),this._renderChildren(),this.triggerMethod("render",this),this},_renderChildren:function(){this.isRendered&&r.CollectionView.prototype._renderChildren.call(this)},_renderTemplate:function(){var e={};e=this.serializeData(),e=this.mixinTemplateHelpers(e),this.triggerMethod("before:render:template");var t=this.getTemplate(),i=r.Renderer.render(t,e,this);this.attachElContent(i),this.bindUIElements(),this.triggerMethod("render:template")},attachElContent:function(e){return this.$el.html(e),this},attachBuffer:function(e,t){var i=this.getChildViewContainer(e);i.append(t)},_insertAfter:function(e){var t=this.getChildViewContainer(this,e);t.append(e.el)},getChildViewContainer:function(e){if("$childViewContainer"in e)return e.$childViewContainer;var t,i=r.getOption(e,"childViewContainer");if(i){var n=r._getValue(i,e);if(t="@"===n.charAt(0)&&e.ui?e.ui[n.substr(4)]:e.$(n),0>=t.length)throw new r.Error({name:"ChildViewContainerMissingError",message:'The specified "childViewContainer" was not found: '+e.childViewContainer})}else t=e.$el;return e.$childViewContainer=t,t},resetChildViewContainer:function(){this.$childViewContainer&&delete this.$childViewContainer}}),r.LayoutView=r.ItemView.extend({regionClass:r.Region,constructor:function(e){e=e||{},this._firstRender=!0,this._initializeRegions(e),r.ItemView.call(this,e)},render:function(){return this._ensureViewIsIntact(),this._firstRender?this._firstRender=!1:this._reInitializeRegions(),r.ItemView.prototype.render.apply(this,arguments)},destroy:function(){return this.isDestroyed?this:(this.regionManager.destroy(),r.ItemView.prototype.destroy.apply(this,arguments))},addRegion:function(e,t){var i={};return i[e]=t,this._buildRegions(i)[e]},addRegions:function(e){return this.regions=i.extend({},this.regions,e),this._buildRegions(e)},removeRegion:function(e){return delete this.regions[e],this.regionManager.removeRegion(e)},getRegion:function(e){return this.regionManager.get(e)},getRegions:function(){return this.regionManager.getRegions()},_buildRegions:function(e){var t={regionClass:this.getOption("regionClass"),parentEl:i.partial(i.result,this,"el")};return this.regionManager.addRegions(e,t)},_initializeRegions:function(e){var t;this._initRegionManager(),t=r._getValue(this.regions,this,[e])||{};var n=this.getOption.call(e,"regions");n=r._getValue(n,this,[e]),i.extend(t,n),t=this.normalizeUIValues(t),this.addRegions(t)},_reInitializeRegions:function(){this.regionManager.invoke("reset")},getRegionManager:function(){return new r.RegionManager},_initRegionManager:function(){this.regionManager=this.getRegionManager(),this.regionManager._parent=this,this.listenTo(this.regionManager,"before:add:region",function(e){this.triggerMethod("before:add:region",e)}),this.listenTo(this.regionManager,"add:region",function(e,t){this[e]=t,this.triggerMethod("add:region",e,t)}),this.listenTo(this.regionManager,"before:remove:region",function(e){this.triggerMethod("before:remove:region",e)}),this.listenTo(this.regionManager,"remove:region",function(e,t){delete this[e],this.triggerMethod("remove:region",e,t)})},_getImmediateChildren:function(){return i.chain(this.regionManager.getRegions()).pluck("currentView").compact().value()}}),r.Behavior=r.Object.extend({constructor:function(e,t){this.view=t,this.defaults=i.result(this,"defaults")||{},this.options=i.extend({},this.defaults,e),r.Object.apply(this,arguments) +},$:function(){return this.view.$.apply(this.view,arguments)},destroy:function(){this.stopListening()},proxyViewProperties:function(e){this.$el=e.$el,this.el=e.el}}),r.Behaviors=function(e,t){function i(e,n){return t.isObject(e.behaviors)?(n=i.parseBehaviors(e,n||t.result(e,"behaviors")),i.wrap(e,n,t.keys(s)),n):{}}function n(e,i){this._view=e,this._viewUI=t.result(e,"ui"),this._behaviors=i,this._triggers={}}var r=/^(\S+)\s*(.*)$/,s={behaviorTriggers:function(e,t){var i=new n(this,t);return i.buildBehaviorTriggers()},behaviorEvents:function(i,n){var s={},o=this._uiBindings||t.result(this,"ui");return t.each(n,function(i,n){var h={},a=t.clone(t.result(i,"events"))||{},l=i._uiBindings||t.result(i,"ui"),u=t.extend({},o,l);a=e.normalizeUIKeys(a,u);var d=0;t.each(a,function(e,s){var o=s.match(r),a=o[1]+"."+[this.cid,n,d++," "].join(""),l=o[2],u=a+l,c=t.isFunction(e)?e:i[e];h[u]=t.bind(c,i)},this),s=t.extend(s,h)},this),s}};return t.extend(i,{behaviorsLookup:function(){throw new e.Error({message:"You must define where your behaviors are stored.",url:"marionette.behaviors.html#behaviorslookup"})},getBehaviorClass:function(t,n){return t.behaviorClass?t.behaviorClass:e._getValue(i.behaviorsLookup,this,[t,n])[n]},parseBehaviors:function(e,n){return t.chain(n).map(function(n,r){var s=i.getBehaviorClass(n,r),o=new s(n,e),h=i.parseBehaviors(e,t.result(o,"behaviors"));return[o].concat(h)}).flatten().value()},wrap:function(e,i,n){t.each(n,function(n){e[n]=t.partial(s[n],e[n],i)})}}),t.extend(n.prototype,{buildBehaviorTriggers:function(){return t.each(this._behaviors,this._buildTriggerHandlersForBehavior,this),this._triggers},_buildTriggerHandlersForBehavior:function(i,n){var r=t.extend({},this._viewUI,t.result(i,"ui")),s=t.clone(t.result(i,"triggers"))||{};s=e.normalizeUIKeys(s,r),t.each(s,t.bind(this._setHandlerForBehavior,this,i,n))},_setHandlerForBehavior:function(e,t,i,n){var r=n.replace(/^\S+/,function(e){return e+"."+"behaviortriggers"+t});this._triggers[r]=this._view._buildViewTrigger(i)}}),i}(r,i),r.AppRouter=t.Router.extend({constructor:function(e){this.options=e||{},t.Router.apply(this,arguments);var i=this.getOption("appRoutes"),n=this._getController();this.processAppRoutes(n,i),this.on("route",this._processOnRoute,this)},appRoute:function(e,t){var i=this._getController();this._addAppRoute(i,e,t)},_processOnRoute:function(e,t){if(i.isFunction(this.onRoute)){var n=i.invert(this.getOption("appRoutes"))[e];this.onRoute(e,n,t)}},processAppRoutes:function(e,t){if(t){var n=i.keys(t).reverse();i.each(n,function(i){this._addAppRoute(e,i,t[i])},this)}},_getController:function(){return this.getOption("controller")},_addAppRoute:function(e,t,n){var s=e[n];if(!s)throw new r.Error('Method "'+n+'" was not found on the controller');this.route(t,n,i.bind(s,e))},getOption:r.proxyGetOption,triggerMethod:r.triggerMethod,bindEntityEvents:r.proxyBindEntityEvents,unbindEntityEvents:r.proxyUnbindEntityEvents}),r.Application=r.Object.extend({constructor:function(e){this._initializeRegions(e),this._initCallbacks=new r.Callbacks,this.submodules={},i.extend(this,e),this._initChannel(),r.Object.call(this,e)},execute:function(){this.commands.execute.apply(this.commands,arguments)},request:function(){return this.reqres.request.apply(this.reqres,arguments)},addInitializer:function(e){this._initCallbacks.add(e)},start:function(e){this.triggerMethod("before:start",e),this._initCallbacks.run(e,this),this.triggerMethod("start",e)},addRegions:function(e){return this._regionManager.addRegions(e)},emptyRegions:function(){return this._regionManager.emptyRegions()},removeRegion:function(e){return this._regionManager.removeRegion(e)},getRegion:function(e){return this._regionManager.get(e)},getRegions:function(){return this._regionManager.getRegions()},module:function(e,t){var n=r.Module.getClass(t),s=i.toArray(arguments);return s.unshift(this),n.create.apply(n,s)},getRegionManager:function(){return new r.RegionManager},_initializeRegions:function(e){var t=i.isFunction(this.regions)?this.regions(e):this.regions||{};this._initRegionManager();var n=r.getOption(e,"regions");return i.isFunction(n)&&(n=n.call(this,e)),i.extend(t,n),this.addRegions(t),this},_initRegionManager:function(){this._regionManager=this.getRegionManager(),this._regionManager._parent=this,this.listenTo(this._regionManager,"before:add:region",function(){r._triggerMethod(this,"before:add:region",arguments)}),this.listenTo(this._regionManager,"add:region",function(e,t){this[e]=t,r._triggerMethod(this,"add:region",arguments)}),this.listenTo(this._regionManager,"before:remove:region",function(){r._triggerMethod(this,"before:remove:region",arguments)}),this.listenTo(this._regionManager,"remove:region",function(e){delete this[e],r._triggerMethod(this,"remove:region",arguments)})},_initChannel:function(){this.channelName=i.result(this,"channelName")||"global",this.channel=i.result(this,"channel")||t.Wreqr.radio.channel(this.channelName),this.vent=i.result(this,"vent")||this.channel.vent,this.commands=i.result(this,"commands")||this.channel.commands,this.reqres=i.result(this,"reqres")||this.channel.reqres}}),r.Module=function(e,t,n){this.moduleName=e,this.options=i.extend({},this.options,n),this.initialize=n.initialize||this.initialize,this.submodules={},this._setupInitializersAndFinalizers(),this.app=t,i.isFunction(this.initialize)&&this.initialize(e,t,this.options)},r.Module.extend=r.extend,i.extend(r.Module.prototype,t.Events,{startWithParent:!0,initialize:function(){},addInitializer:function(e){this._initializerCallbacks.add(e)},addFinalizer:function(e){this._finalizerCallbacks.add(e)},start:function(e){this._isInitialized||(i.each(this.submodules,function(t){t.startWithParent&&t.start(e)}),this.triggerMethod("before:start",e),this._initializerCallbacks.run(e,this),this._isInitialized=!0,this.triggerMethod("start",e))},stop:function(){this._isInitialized&&(this._isInitialized=!1,this.triggerMethod("before:stop"),i.invoke(this.submodules,"stop"),this._finalizerCallbacks.run(void 0,this),this._initializerCallbacks.reset(),this._finalizerCallbacks.reset(),this.triggerMethod("stop"))},addDefinition:function(e,t){this._runModuleDefinition(e,t)},_runModuleDefinition:function(e,n){if(e){var s=i.flatten([this,this.app,t,r,t.$,i,n]);e.apply(this,s)}},_setupInitializersAndFinalizers:function(){this._initializerCallbacks=new r.Callbacks,this._finalizerCallbacks=new r.Callbacks},triggerMethod:r.triggerMethod}),i.extend(r.Module,{create:function(e,t,n){var r=e,s=i.rest(arguments,3);t=t.split(".");var o=t.length,h=[];return h[o-1]=n,i.each(t,function(t,i){var o=r;r=this._getModule(o,t,e,n),this._addModuleDefinition(o,r,h[i],s)},this),r},_getModule:function(e,t,n,r){var s=i.extend({},r),o=this.getClass(r),h=e[t];return h||(h=new o(t,n,s),e[t]=h,e.submodules[t]=h),h},getClass:function(e){var t=r.Module;return e?e.prototype instanceof t?e:e.moduleClass||t:t},_addModuleDefinition:function(e,t,i,n){var r=this._getDefine(i),s=this._getStartWithParent(i,t);r&&t.addDefinition(r,n),this._addStartWithParent(e,t,s)},_getStartWithParent:function(e,t){var n;return i.isFunction(e)&&e.prototype instanceof r.Module?(n=t.constructor.prototype.startWithParent,i.isUndefined(n)?!0:n):i.isObject(e)?(n=e.startWithParent,i.isUndefined(n)?!0:n):!0},_getDefine:function(e){return!i.isFunction(e)||e.prototype instanceof r.Module?i.isObject(e)?e.define:null:e},_addStartWithParent:function(e,t,i){t.startWithParent=t.startWithParent&&i,t.startWithParent&&!t.startWithParentIsConfigured&&(t.startWithParentIsConfigured=!0,e.addInitializer(function(e){t.startWithParent&&t.start(e)}))}}),r}); +/* +//@ sourceMappingURL=backbone.marionette.map +*/ \ No newline at end of file diff -r 000000000000 -r 493bcb69166c src/DML/VendorAssetsBundle/Resources/assets/backbone.marionette/dev/TemplateCache.loadTemplate_fixed.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DML/VendorAssetsBundle/Resources/assets/backbone.marionette/dev/TemplateCache.loadTemplate_fixed.js Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,12 @@ +// By default TemplateCache fails to load templates that have zero length +// +Backbone.Marionette.TemplateCache.prototype.loadTemplate = function(templateId) { + var $template = Backbone.$(templateId); + if (!$template.length) { + throw new Marionette.Error({ + name : 'NoTemplateError', + message : 'Could not find template: "' + templateId + '"' + }); + } + return $template.html(); +}; \ No newline at end of file diff -r 000000000000 -r 493bcb69166c src/DML/VendorAssetsBundle/Resources/assets/backbone/1.1.2/backbone-min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/DML/VendorAssetsBundle/Resources/assets/backbone/1.1.2/backbone-min.js Tue Feb 09 20:54:02 2016 +0100 @@ -0,0 +1,2 @@ +(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('