Daktronics.Conversions=Daktronics.Conversions||{millimeterToFeet:function(mm){return mm/304.8},millimeterToInch:function(mm){return mm/25.4},feetToMillimeter:function(ft){return ft*304.8},meterToInches:function(m){return m*39.3700787},millimeterToMeter:function(mm){return mm/1e3},millimeterToCentimeter:function(mm){return mm/10},meterToMillimeter:function(m){return m*1e3},feetToMeter:function(ft){return Daktronics.Conversions.millimeterToMeter(Daktronics.Conversions.feetToMillimeter(ft))},meterToFeet:function(m){return Daktronics.Conversions.millimeterToFeet(Daktronics.Conversions.meterToMillimeter(m))},poundToKilo:function(lb){return lb/2.2046},inchesToFeet:function(inches,inchesFactionDigits=1){var feet=Math.floor(inches/12),inchesPrecision=Math.pow(10,inchesFactionDigits),inchesRemainder=Math.round(inches%12*inchesPrecision)/inchesPrecision,inchesRounded,returnVal;if(inchesRemainder>0&&inchesRemainder<12){let inchesFormat=new Intl.NumberFormat("en-US",{maximumFractionDigits:inchesFactionDigits});inchesRounded=inchesFormat.format(inchesRemainder)}else inchesRemainder===12&&feet++;return returnVal=feet+"'",inchesRounded&&(returnVal+=` ${inchesRounded}"`),returnVal},inchesToFeetDecimal:function(inches){return inches/12},inchesToFeetRounded:function(inches,feetDecimalPlaces=0){const feetPrecision=Math.pow(10,feetDecimalPlaces);return Math.round(Daktronics.Conversions.inchesToFeetDecimal(inches)*feetPrecision)/feetPrecision},inchesToCentimeter:function(inches){return inches*2.54},inchesToMeters:function(inches,formatted=false){let val=inches/39.3700787;return formatted?Daktronics.Conversions.decimalRoundedToHundreths(val)+"m":val},feetToInches:function(ft){return ft*12},mmToInches:function(mm){return mm*.03937},kiloToPound:function(kg){return kg*2.2046},decimalRoundedToHundreths:function(value){let epsilon=Number.EPSILON||Math.pow(2,-52);return Math.round((value+epsilon)*100)/100},decimalRoundedToTenths:function(value){let epsilon=Number.EPSILON||Math.pow(2,-52);return Math.round((value+epsilon)*10)/10}};Daktronics.Dimensions=Daktronics.Dimensions||function(heightInches=0,lengthInches=0,depthInches=0){this.heightInches=heightInches;this.lengthInches=lengthInches;this.depthInches=depthInches;this.heightInFeet=function(){return this.heightInches?Daktronics.Conversions.inchesToFeet(this.heightInches):null};this.lengthInFeet=function(){return this.lengthInches?Daktronics.Conversions.inchesToFeet(this.lengthInches):null};this.depthInFeet=function(){return this.depthInches?Daktronics.Conversions.inchesToFeet(this.depthInches):null};this.heightInMeters=function(){return this.heightInches?Daktronics.Conversions.inchesToMeters(this.heightInches,!0):null};this.lengthInMeters=function(){return this.lengthInches?Daktronics.Conversions.inchesToMeters(this.lengthInches,!0):null};this.depthInMeters=function(){return this.depthInches?Daktronics.Conversions.inchesToMeters(this.depthInches,!0):null}};Daktronics.Dimensions.prototype.toString=function(standardOnly=false,metricOnly=false){let stdSB=[],metricSB=[],stringVal="";if(this.heightInFeet()&&stdSB.push(this.heightInFeet()),this.lengthInFeet()&&stdSB.push(this.lengthInFeet()),this.depthInFeet()&&stdSB.push(this.depthInFeet()),this.heightInMeters()&&metricSB.push(this.heightInMeters()),this.lengthInMeters()&&metricSB.push(this.lengthInMeters()),this.depthInMeters()&&metricSB.push(this.depthInMeters()),stdSB.length&&(stringVal=stdSB.join(" x "),standardOnly))return stringVal;if(metricSB.length){let metricVal=metricSB.join(" x ");if(metricOnly)return metricVal;stringVal+=` (${metricVal})`}return stringVal};
const specTableSelectors=Object.freeze({MAIN:Object.freeze({TABLE:"table:not(.freeze-table)",ROW:"table:not(.freeze-table) tr",HEAD:"table:not(.freeze-table) thead",BODY:"table:not(.freeze-table) tbody",ROW_HEAD_CELL:"table:not(.freeze-table) thead > tr > *",DATA_ROW:"table:not(.freeze-table) tbody tr"}),FREEZE:Object.freeze({TABLE:".freeze-table",BODY:".freeze-table tbody",ROW:".freeze-table tr",DATA_ROW:".freeze-table tbody tr"}),FIRST_CELL:"tbody > tr:first-child > *:first-child",LAST_CELL:"tbody td:last-child, tbody th:last-child"});Vue.component("configurator-spec-table",{props:{tableData:Array,headKey:String,footKey:String,selectedValue:[String,Number],selectedValueKey:String,rowHeadings:{type:Array,validator:function(headings){return headings.every(heading=>heading.label&&heading.key)}},actionKey:String,forPrint:{type:Boolean,"default":!1},rowsToFreeze:{type:Number,"default":1}},data(){return{modalTitle:"",modalBody:""}},computed:{footerLabel(){var _a,_b;if((_b=(_a=this.rowHeadings)===null||_a===void 0?void 0:_a.find(heading=>heading.key===this.footKey))!==null&&_b!==void 0)return _b.label},freezeHeaderRow(){return this.rowsToFreeze>0},frozenRowHeadings(){return this.rowHeadings.slice(0,this.rowsToFreeze-1)}},watch:{tableData(){this.$nextTick(function(){this.setTableBodyWidth();this.addRowHoverEventListeners()})}},methods:{getCellHtml(columnValue){return this.isObject(columnValue)?columnValue.value:columnValue},hasToolTip(columnValue){return!!columnValue&&!!columnValue.toolTip},hasDetail(columnValue){return!!columnValue&&!!columnValue.detail&&this.isObject(columnValue.detail)&&!!columnValue.detail.body},isColumnSelected(columnValue){return this.selectedValue?this.selectedValue===columnValue:!1},setModal(columnValue){columnValue.detail&&this.isObject(columnValue.detail)&&(this.modalTitle=columnValue.detail.title,this.modalBody=columnValue.detail.body);this.hasDetail(columnValue)&&$(this.$el).find(".modal").modal("show")},setTableBodyWidth(){this.forPrint&&this.$el.classList.add("d-block");let rowHeadingColumn=this.$el.querySelector(specTableSelectors.MAIN.HEAD),dataRows=this.$el.querySelectorAll(specTableSelectors.MAIN.DATA_ROW),availableBodyWidth=this.$el.getBoundingClientRect().width-rowHeadingColumn.getBoundingClientRect().width,columnsWidth=15;dataRows.forEach(row=>{columnsWidth+=row.getBoundingClientRect().width});let tableBodyWidth=Math.min(availableBodyWidth,columnsWidth);this.$el.querySelectorAll("table tbody").forEach(tableBody=>{tableBody.style.width=`${tableBodyWidth}px`});this.setTableRowHeights();this.forPrint&&this.$el.classList.remove("d-block")},setTableBodyWidthDebounce:debounce(function(){this.setTableBodyWidth()},20,!1),setTableRowHeights(){let rowHeadings=this.$el.querySelectorAll(specTableSelectors.MAIN.ROW_HEAD_CELL),rows=this.$el.querySelectorAll(specTableSelectors.MAIN.DATA_ROW);rows.forEach(row=>{[...row.children].forEach((cell,i)=>{let heading=rowHeadings[i];heading&&(cell.style.height=`${heading.getBoundingClientRect().height}px`)})})},isObject(obj){return Object.prototype.toString.call(obj)==="[object Object]"},showRow(key){return this.tableData.some(col=>!!col[key])},setFreezeTableRowWidths(){let mainTable_rows=this.$el.querySelectorAll(specTableSelectors.MAIN.ROW),freezeTable_rows=this.$el.querySelectorAll(specTableSelectors.FREEZE.ROW);freezeTable_rows.forEach((row,i)=>{let mainTable_row=mainTable_rows[i],cellWidth=mainTable_row.getBoundingClientRect().width;row.style.width=`${cellWidth}px`})},setFreezeTablePosition(){let freezeTable=this.$el.querySelector(specTableSelectors.FREEZE.TABLE);if(freezeTable){let mainTable=this.$el.querySelector(specTableSelectors.MAIN.TABLE);if(this.shouldFreezeRows(mainTable)){freezeTable.classList.add("d-table");let freezeTableRect=freezeTable.getBoundingClientRect(),mainTableLastCellRect=mainTable.querySelector(specTableSelectors.LAST_CELL).getBoundingClientRect(),freezePosition=this.getHeaderBottomPosition(),freezeTableBottom=freezePosition+freezeTableRect.height,freezeTableAtBottomMainTable=mainTableLastCellRect.top<freezeTableBottom,bottomMainTableAboveHeader=mainTableLastCellRect.top>freezePosition;freezeTableAtBottomMainTable&&bottomMainTableAboveHeader&&(freezePosition=mainTableLastCellRect.top-freezeTableRect.height);freezeTable.style.top=`${freezePosition}px`;freezeTable.style.left=`${mainTable.getBoundingClientRect().left}px`}else freezeTable.classList.remove("d-table")}},shouldFreezeRows(mainTable){if(!this.$el.querySelector(specTableSelectors.FREEZE.TABLE))return!1;let mainTable_FirstCell=mainTable.querySelector(specTableSelectors.FIRST_CELL);if(!mainTable_FirstCell)return!1;let mainTable_FirstCellRect=mainTable_FirstCell.getBoundingClientRect(),mainTable_LastCellRect=mainTable.querySelector(specTableSelectors.LAST_CELL).getBoundingClientRect(),viewPort_top=this.getHeaderBottomPosition();return viewPort_top>mainTable_FirstCellRect.top&&viewPort_top<mainTable_LastCellRect.top},getHeaderBottomPosition(){let headerPosition_bottom=document.getElementById("header").getBoundingClientRect().bottom;return Math.max(headerPosition_bottom,0)},setFreezeTableScrollPosition(event){let mainTable=this.$el.querySelector(specTableSelectors.MAIN.TABLE);if(this.shouldFreezeRows(mainTable)){let scrollingTableBody=event===null||event===void 0?void 0:event.target,mainTableBody=mainTable.querySelector(specTableSelectors.MAIN.BODY),freezeTableBody=this.$el.querySelector(specTableSelectors.FREEZE.BODY);if(!scrollingTableBody){freezeTableBody.scrollLeft=mainTableBody.scrollLeft;return}scrollingTableBody===mainTableBody?freezeTableBody.scrollLeft=mainTableBody.scrollLeft:scrollingTableBody===freezeTableBody&&(mainTableBody.scrollLeft=freezeTableBody.scrollLeft)}},setRowHoverState(event){var _a,_b;let isHover=event.type==="mouseover",hoverRow=event.target.closest("tr"),freezeTableRows=this.$el.querySelectorAll(specTableSelectors.FREEZE.DATA_ROW),mainTableRows=this.$el.querySelectorAll(specTableSelectors.MAIN.DATA_ROW),thisTableRows=[...hoverRow.parentNode.children],thisRowIndex=thisTableRows.indexOf(hoverRow);isHover?((_a=freezeTableRows[thisRowIndex])===null||_a===void 0?void 0:_a.classList.add("hover"),mainTableRows[thisRowIndex].classList.add("hover")):((_b=freezeTableRows[thisRowIndex])===null||_b===void 0?void 0:_b.classList.remove("hover"),mainTableRows[thisRowIndex].classList.remove("hover"))},addRowHoverEventListeners(){this.$el.querySelectorAll("tbody tr").forEach(row=>{row.removeEventListener("mouseover",this.setRowHoverState),row.removeEventListener("mouseout",this.setRowHoverState),row.addEventListener("mouseover",this.setRowHoverState),row.addEventListener("mouseout",this.setRowHoverState)})},addTableEventListeners(){document.addEventListener("DOMContentLoaded",()=>{this.setTableBodyWidth(),this.setFreezeTablePosition(),this.setFreezeTableRowWidths()});document.readyState!=="loading"&&this.$nextTick(function(){this.setTableBodyWidth();this.setFreezeTablePosition();this.setFreezeTableRowWidths()});window.addEventListener("resize",()=>{this.setTableBodyWidth(),this.setFreezeTablePosition(),this.setFreezeTableScrollPosition(),this.setFreezeTableRowWidths()});$('[data-toggle="tab"]').on("shown.bs.tab",()=>{this.setTableBodyWidth(),this.setFreezeTablePosition(),this.setFreezeTableRowWidths()});window.addEventListener("scroll",()=>{this.setFreezeTablePosition(),this.setFreezeTableScrollPosition(),this.setFreezeTableRowWidths()});this.$el.querySelectorAll("table tbody").forEach(tableBody=>{tableBody.addEventListener("scroll",this.setFreezeTableScrollPosition)});this.addRowHoverEventListeners()}},mounted(){this.addTableEventListeners();this.$nextTick(function(){this.setTableBodyWidth()});$(this.$el).popover({selector:'[data-tooltip="popover"]',trigger:"hover",placement:"top",container:this.$el})},template:`
<div :class="{'print': forPrint}">
	<table v-if="rowsToFreeze > 0" class="dak-configurator-specs freeze-table mx-auto" cellpadding="0" cellspacing="0">
		<thead>
			<tr>
				<th>&nbsp;</th>
				<spec-table-row-header v-for="(heading, i) in frozenRowHeadings"
									   :key="'freeze-heading' + i"
									   v-show="heading.key !== footKey"
									   :has-detail="hasDetail(heading)"
									   :heading="heading"
									   :set-modal="function(){setModal(heading)}"></spec-table-row-header>
			</tr>
		</thead>
		<tbody>
			<tr v-for="(cellData, i) in tableData"
				:class="{'row-selected': isColumnSelected(cellData[selectedValueKey])}"
				@click="$emit('selection-change', cellData[selectedValueKey])">
				<th><i class="check-icon printHide far"
					:class="{
						'fa-circle': !isColumnSelected(cellData[selectedValueKey]),
						'fa-dot-circle': isColumnSelected(cellData[selectedValueKey])
					}"></i> {{ cellData[headKey] }}</th>
				<spec-table-data-cell v-for="(heading, i) in frozenRowHeadings"
									  :key="'freeze-cell' + i"
									  v-show="heading.key !== footKey"
									  :cell-html="getCellHtml(cellData[heading.key])"
									  :has-detail="hasDetail(cellData[heading.key])"
									  :set-modal="function(){setModal(cellData[heading.key])}"
									  :transition-after-leave="setTableBodyWidthDebounce"></spec-table-data-cell>
			</tr>
		</tbody>
	</table>
	<table class="dak-configurator-specs mx-auto" cellpadding="0" cellspacing="0">
		<thead>
			<tr>
				<th>&nbsp;</th>
				<spec-table-row-header v-for="(heading, i) in rowHeadings"
									   :key="'not-freeze-heading' + i"
									   v-show="heading.key !== footKey"
									   :has-detail="hasDetail(heading)"
									   :heading="heading"
									   :set-modal="function(){setModal(heading)}"></spec-table-row-header>
				<th v-if="showRow(footKey)">{{ footerLabel }}:</th>
			</tr>
		</thead>
		<tbody>
			<tr v-for="(cellData, i) in tableData"
				:class="{'row-selected': isColumnSelected(cellData[selectedValueKey])}"
				@click="$emit('selection-change', cellData[selectedValueKey])">
				<th><i class="check-icon printHide far"
					:class="{
						'fa-circle': !isColumnSelected(cellData[selectedValueKey]),
						'fa-dot-circle': isColumnSelected(cellData[selectedValueKey])
					}"></i> {{ cellData[headKey] }}</th>
				<spec-table-data-cell v-for="(heading, i) in rowHeadings"
									  :key="'not-freeze-cell' + i"
									  v-show="heading.key !== footKey"
									  :cell-html="getCellHtml(cellData[heading.key])"
									  :has-detail="hasDetail(cellData[heading.key])"
									  :set-modal="function(){setModal(cellData[heading.key])}"
									  :transition-after-leave="setTableBodyWidthDebounce"></spec-table-data-cell>
				<th v-if="showRow(footKey)"
					:data-toggle="hasDetail(cellData[footKey]) ? 'modal' : null"
					:data-tooltip="hasToolTip(cellData[footKey]) ? 'popover' : null"
					:data-content="hasToolTip(cellData[footKey]) ? cellData[footKey].toolTip : null"
					@click="setModal(cellData[footKey])">
					<transition name="slide-fade-footer" mode="out-in"
						@after-leave="setTableBodyWidthDebounce()">
						<span :key="getCellHtml(cellData[footKey])"><span v-html="getCellHtml(cellData[footKey]) || '&nbsp;'"></span>
						<i v-if="hasDetail(cellData[footKey]) || hasToolTip(cellData[footKey])" class="fal fa-info-circle printHide"></i></span>
					</transition>
				</th>
				<td v-if="showRow(actionKey) || $slots['action-slot-i']" style="background-color:#fff; text-align: center">
					<slot :name="'action-slot-' + i">
						<span v-html="getCellHtml(cellData[actionKey])"></span>
					</slot>
				</td>
			</tr>
		</tbody>
	</table>
    <div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="" aria-hidden="true">
        <div class="modal-dialog modal-lg modal-dialog-centered" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h3 class="modal-title" style="margin-top:0">{{ modalTitle }}</h3>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body" v-html="modalBody"></div>
            </div>
        </div>
    </div>
</div>`});Vue.component("spec-table-row-header",{props:{heading:Object,hasDetail:Boolean,setModal:Function},methods:{},template:`
<td>
	<span v-if="!hasDetail"
		class="font-weight-bold">{{ heading.label }}:</span>
	<span v-else
		class="has-detail font-weight-bold"
		data-toggle="modal"
		data-target="#specTableModal"
		@click="setModal()">{{ heading.label }}
	<a class="btn btn-link p-0 m-0" role="button"><i class="fal fa-info-circle printHide"></i></a>:</span>
</td>`});Vue.component("spec-table-data-cell",{props:{hasDetail:Boolean,cellHtml:[String,Number],transitionAfterLeave:Function,setModal:Function},methods:{},template:`
<td>
	<transition v-if=!hasDetail name="slide-fade" mode="out-in"
		@after-leave="transitionAfterLeave()">
		<span :key="cellHtml" v-html="cellHtml || '&nbsp;'"></span>
	</transition>
	<span v-else
		class="has-detail"
		data-toggle="modal"
		@click="setModal()">{{ cellHtml || '&nbsp;' }}
		<a class="btn btn-link p-0 m-0" role="button"><i class="fal fa-info-circle"></i></a>
	</span>
</td>`});
Vue.component("video-wall-visual",{props:{wallWidth:Number,wallHeight:Number,panelsWide:Number,panelsHigh:Number,environment:String,productsLoaded:Boolean,product:Object},data:function(){return{sourcesLoaded:!1,wallStyles:{width:"0px",height:"0px"},scaleObjects:[{name:"other",displayName:"Other",sizeInMm:1829,verticalOffset:50,horizontalOffsetPercent:.99,horizontalAlign:"right",styles:{}},{name:"lobby",displayName:"Lobby",sizeInMm:1219,verticalOffset:25,horizontalOffsetPercent:.01,horizontalAlign:"left",styles:{}},{name:"controlRoom",displayName:"Control Room",sizeInMm:1219,verticalOffset:25,horizontalOffsetPercent:.5,horizontalAlign:"center",styles:{}},{name:"conferenceRoom",displayName:"Conference Room",sizeInMm:966,verticalOffset:50,horizontalOffsetPercent:.5,horizontalAlign:"center",styles:{}},{name:"none",displayName:"None",sizeInMm:1829,verticalOffset:50,horizontalOffsetPercent:.99,horizontalAlign:"right",styles:{}},]}},computed:{displayDimensions:function(){return{width:this.product===undefined?0:this.panelsWide*this.product.Width_mm,height:this.product===undefined?0:this.panelsHigh*this.product.Height_mm}},displayStyles:function(){var wallSizeWidthPx=parseFloat(this.wallStyles.width.replace("px","")),heightRatio=this.displayDimensions.height/this.displayDimensions.width,displayToWallWidthRatio=this.displayDimensions.width/this.wallWidth,displayWidth=Math.floor(wallSizeWidthPx*displayToWallWidthRatio),displayHeight=Math.floor(displayWidth*heightRatio);return{width:displayWidth+"px",height:displayHeight+"px"}},floorStyles:function(){return{width:this.wallStyles.width,backgroundSize:this.wallStyles.width+$(".floor").height()+"px"}},hideRoom:function(){return!this.environment||this.environment==="none"}},watch:{wallStyles:function(){this.setScaleObjectsStyles()},wallWidth:function(){this.getWallStyleDimensions()},wallHeight:function(){this.getWallStyleDimensions()},productsLoaded:function(){this.intializeVisual()},sourcesLoaded:function(){this.intializeVisual()},hideRoom:function(newValue){newValue===!0?(this.wallStyles.border="none",this.wallStyles.backgroundImage="none"):(delete this.wallStyles.border,delete this.wallStyles.backgroundImage)}},methods:{getScaleObject:function(name){return this.scaleObjects.reduce(function(scaleAcc,scaleObject){return scaleObject.name===name&&(scaleAcc=scaleObject),scaleAcc})},getWallStyleDimensions:function(){var heightRatio=this.wallHeight/this.wallWidth,maxWidth=$(".visual").width()-20,sidesWidth=$(".left-side").width()+$(".right-side").width(),wallWidth=maxWidth-sidesWidth,wallHeight=Math.floor(wallWidth*heightRatio),maxHeight=Number($(".wall").css("max-height").replace("px","")),screenWidth=$("body").width(),spaceForWall=screenWidth-$(".video-wall-form").outerWidth()-sidesWidth,_this,widthRatio;spaceForWall<wallWidth&&screenWidth>992&&(_this=this,setTimeout(function(){_this.getWallStyleDimensions()},50));wallHeight>maxHeight&&(widthRatio=this.wallWidth/this.wallHeight,wallHeight=maxHeight,wallWidth=Math.floor(wallHeight*widthRatio));this.wallStyles=Object.assign(Object.assign({},this.wallStyles),{width:wallWidth+"px",height:wallHeight+"px"})},setScaleObjectStyle:function(scaleHeight,verticalOffset,horizontalOffsetPercent,scaleElement,horizontalAlign){this.$nextTick(function(){var wallSizePx={width:parseFloat(this.wallStyles.width.replace("px","")),height:parseFloat(this.wallStyles.height.replace("px",""))},scaleHeightRatio=scaleHeight/this.wallHeight,scaleHeightPx=Math.round(wallSizePx.height*scaleHeightRatio),verticalPosition=wallSizePx.height+$(".ceiling").height()+verticalOffset-scaleHeightPx,$scale=$(".scale-ref."+scaleElement),horPositionStart,horizontalPosition;$scale.css("height",scaleHeightPx+"px");horPositionStart=$(".wall").position().left;horizontalPosition=horPositionStart+wallSizePx.width*horizontalOffsetPercent-$scale.width();horizontalAlign==="left"&&(horizontalPosition=horizontalPosition+$scale.width());horizontalAlign==="center"&&(horizontalPosition=horizontalPosition+$scale.width()/2);$scale.css("left",horizontalPosition+"px");this.getScaleObject(scaleElement).styles={height:scaleHeightPx+"px",left:horizontalPosition+"px",top:verticalPosition+"px"}})},setScaleObjectsStyles:function(){var _this=this;this.scaleObjects.forEach(function(scaleObject){_this.setScaleObjectStyle(scaleObject.sizeInMm,scaleObject.verticalOffset,scaleObject.horizontalOffsetPercent,scaleObject.name,scaleObject.horizontalAlign)})},intializeVisual:function(){var self=this;self.productsLoaded===!0&&self.sourcesLoaded===!0&&($("#video-wall-loading").css("display","none"),$("#video-wall-configurator").css("visibility","visible"),self.getWallStyleDimensions(),self.setScaleObjectsStyles())}},mounted:function(){this.$emit("");this.$nextTick(function(){var _this=this,bgSources,loadedCount,environmentNames;$(window).on("load",function(){$(window).on("resize",function(){_this.getWallStyleDimensions()})});bgSources=[];$(".visual *").each(function(index,element){var bgImage=$(element).css("background-image"),src;bgImage!=="none"&&(src=bgImage.replace(/(^url\()|(\)$|["\'])/g,""),bgSources.push(src))});loadedCount=0;bgSources.forEach(function(src){$("<img/>").attr("src",src).on("load",function(){$(this).remove();loadedCount++;loadedCount===bgSources.length&&(_this.sourcesLoaded=!0)})});environmentNames=_this.scaleObjects.reduce(function(names,scaleObject){return names.push({name:scaleObject.name,displayName:scaleObject.displayName}),names},[]);this.$emit("visual-loaded",environmentNames)})},template:'<div class="visual">    <div class="space">        <div class="top" :class="{invisible: hideRoom}">            <div class="corner ceiling-left"><\/div><div class="ceiling" v-bind:style="{width: wallStyles.width}"><\/div><div class="corner ceiling-right"><\/div>        <\/div>        <div class="middle">            <div class="left-side" :class="{invisible: hideRoom}" v-bind:style="{height: wallStyles.height}"><\/div><div class="wall" ref="wall" v-bind:style="wallStyles">                <div class="display" v-bind:class="[environment]" v-bind:style="displayStyles"><\/div>            <\/div><div class="right-side" :class="{invisible: hideRoom}" v-bind:style="{height: wallStyles.height}"><\/div>        <\/div>        <div class="bottom" :class="{invisible: hideRoom}">            <div class="corner floor-left"><\/div><div class="floor" v-bind:style="floorStyles"><\/div><div class="corner floor-right"><\/div>        <\/div>        <img v-show="environment === \'lobby\'" class="scale-ref lobby" v-bind:style="getScaleObject(\'lobby\').styles" src="/media/_site/video-wall/Lobby-Desk.png">        <img v-show="environment === \'controlRoom\'" class="scale-ref controlRoom" v-bind:style="getScaleObject(\'controlRoom\').styles" src="/media/_site/video-wall/Command-Center-Desk.png">        <img v-show="environment === \'conferenceRoom\'" class="scale-ref conferenceRoom" v-bind:style="getScaleObject(\'conferenceRoom\').styles" src="/media/_site/video-wall/Conference-Room-Table.png">        <img class="scale-ref other" v-bind:style="getScaleObject(\'other\').styles" src="/media/_site/video-wall/scale-ref.png">    <\/div>  <\/div>'});
var _a,_b,_c,_d,videoWallRouter,videoWallConfig;$("video-wall-documents").length&&Vue.component("video-wall-documents",{props:{searchQuery:String,defaultKeywords:{type:String,"default":null}},store:makeSearchComponentStore(),data(){return{hasResults:!1}},watch:{searchQuery(val){this.$store.dispatch("newKeywordQuery",val)}},computed:{show(){return this.hasResults&&!!this.searchQuery},keywords(){let keywords=this.searchQuery;return this.defaultKeywords&&(keywords=`(${this.defaultKeywords}) AND (${this.searchQuery})`),keywords}},template:`
<div id="video-wall-documents" class="document-search">
    <document-search :search-query="keywords"
                        :item-limit="20"
                        order-by="SubTitle asc"
                        :show-paging="false"
                        @has-results="hasResults = $event"></document-search>
</div>`});Vue.component("video-wall-size-info",{props:{selectedDimension:Object,maxSize:[Number,String],minSize:[Number,String]},computed:{content(){return`Minimum: ${this.minSize} ${this.selectedDimension.label}<br/>Maximum: ${this.maxSize} ${this.selectedDimension.label}`}},mounted(){$(this.$el).popover()},template:`
<a :data-content="content" tabindex="0" class="btn btn-link p-0 shadow-none" role="button" data-toggle="popover" data-placement="top" data-trigger="focus" data-html="true"><i class="fa-regular fa-circle-info"></i></a>
`});videoWallRouter=new VueRouter({mode:"history",routes:[]});let videoWallSettings={minimumSizes:{width:2,height:2},defaultSizes:{width:9,height:8}};const videoWallSettingsValue=$("#video-wall-configurator-vue").attr("custom-display-resolution");if(videoWallSettingsValue){const parsedSettings=JSON.parse(videoWallSettingsValue);videoWallSettings.minimumSizes.width=(_b=(_a=parsedSettings.minimumSizes)===null||_a===void 0?void 0:_a.width)!==null&&_b!==void 0?_b:videoWallSettings.minimumSizes.width;videoWallSettings.minimumSizes.height=(_d=(_c=parsedSettings.minimumSizes)===null||_c===void 0?void 0:_c.height)!==null&&_d!==void 0?_d:videoWallSettings.minimumSizes.height}const userType=$("#video-wall-configurator-vue").attr("custom-usertype");let isDomesticUser=userType==="DomesticAVIntegrator",unitType=isDomesticUser?"imperial":"metric",wallWidthInUnitsValue=isDomesticUser?49.213:15,wallHeightInUnitsValue=isDomesticUser?19.685:6;videoWallConfig=new Vue({el:"#video-wall-configurator-vue",router:videoWallRouter,data:{isInit:!1,pricingRequestPage:$("#video-wall-configurator").attr("data-pricingRequestPage")||"",reviewPage:$("#video-wall-configurator").attr("data-reviewPage")||"",unitType:unitType,userType:userType,selectedResolution:{},selectedPixelPitch:{},defaultPixelPitch:"2.5",selectedProductSeries:{},hoveredProductSeriesID:0,defaultProductSeries:"NPN",wallWidth:6096,wallHeight:3048,wallWidthInUnitsValue:wallWidthInUnitsValue,wallHeightInUnitsValue:wallHeightInUnitsValue,panelsWide:videoWallSettings.defaultSizes.width,panelsHigh:videoWallSettings.defaultSizes.height,minPanelsWidth:videoWallSettings.minimumSizes.width,minPanelsHeight:videoWallSettings.minimumSizes.height,environment:"other",environments:[],environmentDescription:"",productSeries:[],specInfo:[],seriesRatings:[],fitToWallResolution:{name:"fit",fixedSize:!1,label:"Fit To Wall"},customResolution:{name:"custom",fixedSize:!1,label:"Custom"},userHasBudgetaryPricingAccess:!1,userLoggedIn:!1,resolutions:[{name:"hd",label:"HD",width:1920,height:1080,fixedSize:!0},{name:"4k",label:"4K",width:3840,height:2160,fixedSize:!0},{name:"8k",label:"8K",width:7680,height:4320,fixedSize:!0}],conversions:Daktronics.Conversions,mobile:/Mobi|Android/i.test(navigator.userAgent),selectedCountry:$('#country-select > *[selected="selected"]').attr("value")||""},computed:{resolutionLabelString:function(){var stringValue=this.selectedResolution.label;return this.selectedResolution.name==="custom"&&(stringValue=stringValue.concat(" ",this.panelsWide.toString(),"w x ",this.panelsHigh,"h")),stringValue},feetVsMeter:function(){return this.unitType==="metric"?"m":"ft"},lbVskg:function(){return this.unitType==="metric"?"kg":"lbs"},inchesVsmm:function(){return this.unitType==="metric"?"mm":"in"},pixelPitches:function(){return this.distinctProductSeriesPixelPitches(this.productSeries)},wallWidthInUnits:function(){return this.getLengthAsUnit(this.wallWidth)},wallHeightInUnits:function(){return this.getLengthAsUnit(this.wallHeight)},wallDimensions:function(){var wallWidth=Math.max(Math.min(this.wallWidth,this.maxWallDimensions.width),this.minWallDimensions.width),wallHeight=Math.max(Math.min(this.wallHeight,this.maxWallDimensions.height),this.minWallDimensions.height);return{width:wallWidth,height:wallHeight}},minWallDimensions:function(){var minWidth=this.conversions.feetToMillimeter(8),minHeight=minWidth,displayDimensions;return this.environment!=="other"&&(minWidth=this.conversions.feetToMillimeter(15)),this.selectedResolution.fixedSize&&(displayDimensions=this.displayDimensions,minWidth=Math.max(minWidth,Math.ceil(displayDimensions.width)),minHeight=Math.max(minHeight,Math.ceil(displayDimensions.height))),{width:minWidth,height:minHeight}},maxWallDimensions:function(){return{width:this.conversions.feetToMillimeter(100),height:this.conversions.feetToMillimeter(50)}},wallSizeLimitsInUnits:function(){return{unit:{value:this.unitType,label:this.unitType==="metric"?"Meters":"Feet"},min:{width:this.getLengthAsUnit(this.minWallDimensions.width),height:this.getLengthAsUnit(this.minWallDimensions.height)},max:{width:this.getLengthAsUnit(this.maxWallDimensions.width),height:this.getLengthAsUnit(this.maxWallDimensions.height)}}},wallWidthError:function(){var error="",widthInMM;if(isNaN(this.wallWidthInUnitsValue))error="Please enter a number for wall width.";else{if(widthInMM=this.getLengthAsMM(this.wallWidthInUnitsValue),widthInMM<this.minWallDimensions.width||widthInMM>this.maxWallDimensions.width){let min=this.getLengthAsUnit(this.minWallDimensions.width),max=this.getLengthAsUnit(this.maxWallDimensions.width);error=`Please set a width between ${min} and ${max} ${this.feetVsMeter}.`}if(this.selectedResolution.fixedSize&&widthInMM<this.minWallDimensions.width){let min=this.getLengthAsUnit(this.minWallDimensions.width);error=`The selected resolution and pixel pitch requires a minimum room width of ${min} ${this.feetVsMeter}.`}}return error},wallHeightError:function(){var error="",heightInMM;if(isNaN(this.wallHeightInUnitsValue))error="Please enter a number for wall height.";else{if(heightInMM=this.getLengthAsMM(this.wallHeightInUnitsValue),heightInMM<this.minWallDimensions.height||heightInMM>this.maxWallDimensions.height){let min=this.getLengthAsUnit(this.minWallDimensions.height),max=this.getLengthAsUnit(this.maxWallDimensions.height);error=`Please set a height between ${min} and ${max} ${this.feetVsMeter}.`}if(this.selectedResolution.fixedSize&&heightInMM<this.minWallDimensions.height){let min=this.getLengthAsUnit(this.minWallDimensions.height);error=`The selected resolution and pixel pitch requires a minimum room height of ${min} ${this.feetVsMeter}.`}}return error},numberOfPanels:function(){return this.getNumberOfPanels(this.selectedProductSeries,this.selectedResolution)},panelsTotal:function(){return this.panelsWide*this.panelsHigh},displayDimensions:function(){return{width:this.selectedProductSeries===undefined?0:this.panelsWide*this.selectedProductSeries.Width_mm,height:this.selectedProductSeries===undefined?0:this.panelsHigh*this.selectedProductSeries.Height_mm}},displayArea:function(){return this.displayDimensions.height*this.displayDimensions.width},resolution:function(){return{width:this.panelsWide*this.selectedProductSeries.PixelWidth,height:this.panelsHigh*this.selectedProductSeries.PixelHeight}},availableProductSeries:function(){var self=this;return self.productSeries.reduce(function(productsAcc,product){if(self.selectedResolution.fixedSize||self.selectedPixelPitch.pixelPitch!==product.PixelPitch.pixelPitch){var maxNumberOfPanels=self.maxNumberOfPanels(product),panelsForResolutionAndPitch=self.getNumberOfPanels(product,self.selectedResolution),productWillFit=panelsForResolutionAndPitch.width<=maxNumberOfPanels.width&&panelsForResolutionAndPitch.height<=maxNumberOfPanels.height,productMatchesSelectedValues=self.selectedPixelPitch.pixelPitch===product.PixelPitch.pixelPitch&&self.selectedPixelPitch.UnitOfMeasure===product.PixelPitch.UnitOfMeasure;productWillFit&&productMatchesSelectedValues&&productsAcc.push(product)}else productsAcc.push(product);return productsAcc},[]).sort(function(a,b){return a.Series.Name>b.Series.Name?1:b.Series.Name>a.Series.Name?-1:a.Series.Name===b.Series.Name?b.Series.Version-a.Series.Version:0})},specTableHeaders:function(){const contrastRatioInfo=this.getContrastRatioInfo(),contrastRatioHeader={label:"Ambient Contrast Ratio",key:"contrast",order:4},headers=[{label:"Series",key:"seriesVersion",order:0},{label:"Pixel Pitch (mm)",key:"pixelPitch",order:1},{label:"Brightness (nits)",key:"nits",order:3},contrastRatioHeader,{label:"Display Interface",key:"displayInterface",order:5,detail:{title:"Display Interfaces",body:this.getSpecInfoDetailBody("Display Interfaces",value=>this.availableProductSeries.some(product=>product.DisplayInterface===value))}},{label:"Display Resolution (w x h)",key:"displayResolution",order:6},{label:`Active Screen Size (w x h) (${this.feetVsMeter})`,key:"activeDimensions",order:7},{label:`Display Diagonal`,key:"displayDiagonal",order:8},{label:"Number of Units (w x h)",key:"numberOfPanels",order:9},{label:`Display Weight (${this.lbVskg})`,key:"displayWeight",order:10},{label:"Display Power (avg watt)",key:"displayPowerAvg",order:11},{label:"Display Power (max watt)",key:"displayPowerMax",order:12},{label:"Heat Output (max BTU/hr)",key:"heatOutput",order:13},{label:`Unit Dimensions (w x h) (${this.inchesVsmm})`,key:"panelDimensions",order:14},{label:`Unit Diagonal`,key:"panelDiagonal",order:15},{label:"Unit Resolution (w x h)",key:"panelResolution",order:16},{label:"Service Access",key:"serviceAccess",order:17},{label:"Extended Service Options",key:"serviceOptions",order:18},];return this.hasPixelConfigurations&&headers.push({label:"LED Technology",key:"pixelConfiguration",order:2,detail:{title:"LED Technology",body:this.getSpecInfoDetailBody("Pixel Configurations",value=>this.availableProductSeries.some(product=>product.PixelConfiguration===value))}}),this.userHasBudgetaryPricingAccess&&headers.push({label:"Estimated Display MSRP (USD)",key:"msrp",order:20}),contrastRatioInfo&&(contrastRatioHeader.detail={title:"Ambient Contrast Ratio",body:contrastRatioInfo}),headers.sort((a,b)=>a.order-b.order),headers},specTableData:function(){return this.availableProductSeries.map(product=>{let spec={moduleId:product.ModuleID,seriesName:product.Series.Name,seriesVersion:{value:product.Series.Version,detail:this.getSeriesDetail(product)},pixelPitch:product.PixelPitch.pixelPitch,pixelConfiguration:product.PixelConfiguration,nits:product.Nits.toLocaleString(),contrast:product.Contrast,displayInterface:product.DisplayInterface,displayResolution:`${this.getDisplayResolution(product).width.toLocaleString()} x ${this.getDisplayResolution(product).height.toLocaleString()}`,activeDimensions:`${this.getActiveDimensions(product).width} x ${this.getActiveDimensions(product).height}`,displayDiagonal:this.getDisplayHypotenuse(product),numberOfPanels:`${this.getPanelDimensions(product).width} x ${this.getPanelDimensions(product).height} = ${this.getPanelDimensions(product).total.toLocaleString()} ${this.getProductUnitLabel(product)}`,displayWeight:this.getDisplayWeight(product),displayPowerAvg:this.getDisplayPowerAvg(product),displayPowerMax:this.getDisplayPowerMax(product),heatOutput:this.getHeatOutputMax(product),panelDimensions:`${this.getmmForSelectedUnit(product.Width_mm).toLocaleString()} x ${this.getmmForSelectedUnit(product.Height_mm).toLocaleString()}`,panelDiagonal:this.getHypotenuseLabel(product.Hypotenuse_mm),panelResolution:`${product.PixelWidth.toLocaleString()} x ${product.PixelHeight.toLocaleString()}`,serviceAccess:this.getServiceAccessString(product.ServiceAccess),serviceOptions:product.ExtendedServiceOptions};return this.userHasBudgetaryPricingAccess&&(spec.msrp=this.getSpecTableMSRP(product)),spec})},availablePixelPitches:function(){var self=this,filteredProductSeries=self.productSeries.reduce(function(pixelPitchesAsc,productSeries){if(self.selectedResolution.fixedSize){var maxNumberOfPanels=self.maxNumberOfPanels(productSeries),panelsForResolutionAndPitch=self.getNumberOfPanels(productSeries,self.selectedResolution),productWillFit=panelsForResolutionAndPitch.width<=maxNumberOfPanels.width&&panelsForResolutionAndPitch.height<=maxNumberOfPanels.height;productWillFit&&pixelPitchesAsc.push(productSeries)}else pixelPitchesAsc.push(productSeries);return pixelPitchesAsc},[]);return this.distinctProductSeriesPixelPitches(filteredProductSeries)},availableResolutions:function(){var maxResolution=this.maxResolution(this.selectedProductSeries);return this.resolutions.reduce(function(resolutionsAcc,resolution){var resolutionWillFit=resolution.width<=maxResolution.width&&resolution.height<=maxResolution.height;return resolutionWillFit&&resolutionsAcc.push(resolution.name),resolutionsAcc},[])},pixelPitchSelectionAllAvailable:function(){return this.availablePixelPitches.length===this.pixelPitches.length},resolutionSelectionAllAvailable:function(){return this.availableResolutions.length===this.resolutions.length},hasPixelConfigurations:function(){return this.availableProductSeries.some(series=>series.PixelConfiguration)},environmentLabel:function(){var result=this.environment,selectedEnv;return result==="other"?result=this.environmentDescription!=""?this.environmentDescription:"Other":(selectedEnv=this.environments.filter(function(env){return env.name===result}),selectedEnv.length>0&&(result=selectedEnv[0].displayName)),result},environmentCompleteDescription:function(){var _this=this,complete="Other",selectedEnv;return this.environmentDescription&&(complete+=" ("+this.environmentDescription+")"),selectedEnv=this.environments.filter(function(env){return env.name===_this.environment}),selectedEnv.length>0&&(complete=selectedEnv[0].displayName),complete},productDocumentSearchQuery:function(){var _a;return((_a=this.selectedProductSeries)===null||_a===void 0?void 0:_a.Series)?`Products/Model:${this.selectedProductSeries.Series.Name} AND MarketingKeywords:Configurator`:null},shareButtonHref:function(){let port=window.location.port?":"+window.location.port:"",url=`https://${window.location.hostname}${port}${this.$route.fullPath}`;return`mailto:?subject=${encodeURIComponent("Take a Look at This Daktronics Indoor Video Display")}&body=${encodeURIComponent("I personalized what our video display could look like in the Daktronics configurator on their website. Take a look and let me know what you think. We can make additional changes prior to requesting pricing.\r\n"+url)}`},requestPricingHref:function(){return this.pricingRequestPage+this.$route.fullPath.replace(this.$route.path,"")},reviewHref:function(){var href="https://"+window.location.hostname+this.reviewPage;return href+this.$route.fullPath.replace(this.$route.path,"")},urlQueryString:function(){var queryString={e:this.environment,w:this.wallWidthInUnits,h:this.wallHeightInUnits,u:this.unitType,r:this.selectedResolution?this.selectedResolution.name:null,s:this.selectedPixelPitch?this.selectedPixelPitch.pixelPitch:null,m:this.selectedProductSeries?this.selectedProductSeries.ModuleID:null};return this.selectedResolution.name==="custom"&&(queryString.pw=this.panelsWide,queryString.ph=this.panelsHigh),queryString},sessionVariables:function(){return{ed:this.environmentDescription}}},methods:{getPriceDetailBodyHtml:function(series){let html=["<h4>Included In Estimate:<\/h4>",`<p style="font-size: .9rem">${series.IncludedInPrice}</p>`,"<h4>Excluded In Estimate:<\/h4>",`<p style="font-size: .9rem">${series.ExcludedInPrice}</p>`,];return html.join("")},getSpecInfoDetailBody:function(specInfoName,hasValueFunc){let singleSpecInfo=this.specInfo.find(info=>info.name===specInfoName);if(singleSpecInfo){let html=[];return singleSpecInfo.info.forEach(info=>{hasValueFunc(info.name)&&(html.push(`<h4>${info.name}</h4>`),html.push(`<p>${info.description}</p>`))}),html.join("")}return null},getContrastRatioInfo:function(){const contrastInfoElement=this.$el.querySelector(".contrast-ratio-info");return contrastInfoElement?contrastInfoElement.innerHTML:null},getSeriesDetail:function(product){let productRatings=this.seriesRatings.find(rating=>rating.seriesName===product.Series.Name&&rating.seriesVersion.toString()===product.Series.Version.toString());if(productRatings){let html=[];return html.push('<div class="row justify-content-center">'),html.push('<div class="col-12 col-lg-4"><table>'),html.push(this.getRatingHtml("Brightness",productRatings.brightnessRating)),html.push(this.getRatingHtml("Control System",productRatings.controlSystemRating)),html.push(this.getRatingHtml("Expected Lifetime",productRatings.expectedLifetimeRating)),html.push("<\/table><\/div>"),html.push('<div class="col-12 col-lg-4"><table>'),html.push(this.getRatingHtml("Contrast",productRatings.contrastRating)),html.push(this.getRatingHtml("LED Durability",productRatings.durabilityRating)),html.push(this.getRatingHtml("Overall",productRatings.overallRating)),html.push("<\/table><\/div>"),html.push("<\/div>"),html.push(`<p class="mt-5">${productRatings.description}</p>`),{title:`${product.Series.Name}-${product.Series.Version}`,body:html.join("")}}return null},getRatingHtml:function(label,rating){let html=["<tr>"];html.push(`<td class="pr-2">${label}:</td>`);html.push("<td>");for(var i=1;i<=5;i++)i<=rating?html.push(`<i class="fas fa-circle" style="color:#002963"></i>`):html.push(`<i class="far fa-circle" style="color:#002963"></i>`);return html.push("<\/td>"),html.push("<\/tr>"),html.join("")},getLengthAsUnit:function(mm){return this.unitType==="metric"?this.conversions.millimeterToMeter(mm).toFixed(3):Math.ceil(this.conversions.millimeterToFeet(mm))},getLengthAsMM:function(length){return this.unitType==="metric"?this.conversions.meterToMillimeter(length):this.conversions.feetToMillimeter(length)},getmmForSelectedUnit:function(value){var valueConverted=value;return this.unitType==="imperial"&&(valueConverted=this.conversions.mmToInches(valueConverted)),this.conversions.decimalRoundedToHundreths(valueConverted)},getWeightInUnitValue:function(Weight_kg){var weightConverted=Weight_kg;return this.unitType==="imperial"&&(weightConverted=this.conversions.kiloToPound(weightConverted)),this.conversions.decimalRoundedToHundreths(weightConverted)},getActiveDimensions:function(product){var totalPanelDimensions=this.getPanelDimensions(product),displaySpecs={width:product===undefined?0:this.conversions.millimeterToMeter(totalPanelDimensions.width*product.Width_mm),height:product===undefined?0:this.conversions.millimeterToMeter(totalPanelDimensions.height*product.Height_mm)};return this.unitType==="imperial"&&(displaySpecs={width:this.conversions.meterToFeet(displaySpecs.width),height:this.conversions.meterToFeet(displaySpecs.height)}),{width:displaySpecs.width.toLocaleString("en-us",{minimumFractionDigits:0,maximumFractionDigits:2}),height:displaySpecs.height.toLocaleString("en-us",{minimumFractionDigits:0,maximumFractionDigits:2})}},getDisplayHypotenuse:function(product){let numberOfPanels=this.getPanelDimensions(product),displayHeight=numberOfPanels.height*product.Height_mm,displayWidth=numberOfPanels.width*product.Width_mm,hypotenuse_mm=Math.sqrt(Math.pow(displayHeight,2)+Math.pow(displayWidth,2));return this.getHypotenuseLabel(hypotenuse_mm)},getHypotenuseLabel:function(hypotenuse_mm){let hypotenuseInch=this.conversions.millimeterToInch(hypotenuse_mm).toLocaleString("en-us",{minimumFractionDigits:0,maximumFractionDigits:2}),hypotenuseCentimeter=this.conversions.millimeterToCentimeter(hypotenuse_mm).toLocaleString("en-us",{minimumFractionDigits:0,maximumFractionDigits:2});return`${hypotenuseInch}" (${hypotenuseCentimeter}cm)`},getDisplayResolution:function(product){var totalPanelDimensions=this.getPanelDimensions(product);return{width:Math.ceil(product.PixelWidth*totalPanelDimensions.width),height:Math.ceil(product.PixelHeight*totalPanelDimensions.height)}},getDisplayWeight:function(product){var totalPanelDimensions=this.getPanelDimensions(product);return Math.round(totalPanelDimensions.total*this.getWeightInUnitValue(product.Weight_kg)).toLocaleString()},getSpecTableMSRP:function(product){let msrp="Contact us for a Quote";return product.PanelMSRP>0&&(msrp={value:this.getDisplayMSRP(product),toolTip:"Click for info about what is included and excluded from the price.",detail:{title:product.Series.Name,body:this.getPriceDetailBodyHtml(product.Series)}}),msrp},getDisplayMSRP:function(product){var totalPanelDimensions=this.getPanelDimensions(product),rawPrice=totalPanelDimensions.total*product.PanelMSRP;return"$".concat(rawPrice.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:0}))},getDisplayMSRPForForm:function(){return this.selectedProductSeries.PanelMSRP===0?"Estimated price was not given.":this.getDisplayMSRP(this.selectedProductSeries).concat(" *This is approximate and not a quote")},getDisplayPowerAvg:function(product){var totalPanelDimensions=this.getPanelDimensions(product);return Math.round(totalPanelDimensions.total*product.PanelPowerAvg).toLocaleString()},getDisplayPowerMax:function(product){var totalPanelDimensions=this.getPanelDimensions(product);return Math.round(totalPanelDimensions.total*product.MaxPanelPower).toLocaleString()},getHeatOutputMax:function(product){let totalPanelDimensions=this.getPanelDimensions(product),maxPower=totalPanelDimensions.total*product.MaxPanelPower;return Math.round(maxPower*3.41).toLocaleString()},getPanelDimensions:function(product){return this.getNumberOfPanels(product,this.selectedResolution)},getNumberOfPanels:function(product,resolution){var width=this.panelsWide,height=this.panelsHigh,maxNumberOfPanels=this.maxNumberOfPanels(product);return resolution.fixedSize&&(width=product==undefined?0:Math.ceil(resolution.width/product.PixelWidth),height=product==undefined?0:Math.ceil(resolution.height/product.PixelHeight)),resolution.name==="fit"&&(width=maxNumberOfPanels.width,height=maxNumberOfPanels.height),resolution.name==="custom"&&(maxNumberOfPanels.width<width&&(width=maxNumberOfPanels.width),maxNumberOfPanels.height<height&&(height=maxNumberOfPanels.height)),{width:width,height:height,total:width*height}},getProductUnitLabel:function(product){let label="Panels";return product.ProductUnit&&(label=product.ProductUnit+"s"),label},maxNumberOfPanels:function(product){return{width:product===undefined?0:Math.floor(this.wallDimensions.width/product.Width_mm),height:product===undefined?0:Math.floor(this.wallDimensions.height/product.Height_mm)}},maxResolution:function(product){var maxPanels=this.maxNumberOfPanels(product);return{width:product===undefined?0:maxPanels.width*product.PixelWidth,height:product===undefined?0:maxPanels.height*product.PixelHeight}},roundIfNeeded:function(value){var returnVal=value,strValue=value+"",decimal=strValue.split(".")[1];return decimal&&decimal.length>3&&(returnVal=value.toFixed(3)),returnVal},convertWallSizeValuesToFeet:function(){this.unitType="imperial";this.wallWidthInUnitsValue=this.roundIfNeeded(this.conversions.millimeterToFeet(this.wallWidth));this.wallHeightInUnitsValue=this.roundIfNeeded(this.conversions.millimeterToFeet(this.wallHeight))},convertWallSizeValuesToMeters:function(){this.unitType="metric";this.wallWidthInUnitsValue=this.roundIfNeeded(this.conversions.millimeterToMeter(this.wallWidth));this.wallHeightInUnitsValue=this.roundIfNeeded(this.conversions.millimeterToMeter(this.wallHeight))},ensureWallSize:function(){parseFloat(this.wallWidthInUnitsValue)!==this.wallWidthInUnits&&this.setWallWidth(this.wallWidthInUnitsValue);parseFloat(this.wallHeightInUnitsValue)!==this.wallHeightInUnits&&this.setWallHeight(this.wallHeightInUnitsValue)},setWallWidth:function(value){var min=this.minWallDimensions.width,max=this.maxWallDimensions.width,width=this.getLengthAsMM(value);width>=min&&width<=max&&(this.wallWidth=width,this.isInit&&window.dataLayer.push({event:"videoWallWidthChanged",size:value}))},setWallHeight:function(value){var min=this.minWallDimensions.height,max=this.maxWallDimensions.height,height=this.getLengthAsMM(value);height>=min&&height<=max&&(this.wallHeight=height,this.isInit&&window.dataLayer.push({event:"videoWallHeightChanged",size:value}))},setEnvironments:function(envArray){var sortedArray=[].concat(envArray).sort(function(a,b){return a.displayName<b.displayName?-1:a.displayName>b.displayName?1:0});this.environments=sortedArray.filter(function(e){return e.name!=="other"})},getServiceAccessString:function(serviceAccessArray){return serviceAccessArray.map(e=>e.Type).join(" / ")},getProductSeries:function(){var self=this;$.ajax({url:new URL("/api/DakSpecs/Module/Configurator/Indoor Video",window.location.href),type:"GET",dataType:"json",contentType:"application/json",success:function(result){self.productSeries=result.Modules;self.userHasBudgetaryPricingAccess=result.UserHasPermissionForBudgetaryPricingData;self.userLoggedIn=result.UserLoggedIn;self.Initialize()}})},setProductSeries_OnClick:function(moduleID){this.selectedProductSeries=this.availableProductSeries.find(x=>x.ModuleID==moduleID)},Initialize:function(){var queryString=this.$route.query,sessionVars=JSON.parse(Daktronics.SessionVariables.get("videoWall"));this.setUnitTypeFromQueryString(queryString.u);this.setEnvironmentFromQueryString(queryString.e);queryString.w&&(this.wallWidthInUnitsValue=isNaN(queryString.w)?1:parseFloat(queryString.w));queryString.h&&(this.wallHeightInUnitsValue=isNaN(queryString.h)?1:parseFloat(queryString.h));this.setSelectedResolutionFromQueryString(queryString.r);this.setSelectedPixelPitchFromQueryString(queryString.s);this.setSelectedProductSeriesFromQueryString(queryString.m);queryString.r==="custom"&&(queryString.pw&&(this.panelsWide=isNaN(queryString.pw)?1:parseFloat(queryString.pw)),queryString.ph&&(this.panelsHigh=isNaN(queryString.ph)?1:parseFloat(queryString.ph)));sessionVars&&sessionVars.ed&&(this.environmentDescription=sessionVars.ed);this.userLoggedIn&&this.getSpecInfo();this.$nextTick(function(){this.isInit=!0})},getSpecInfo:function(){$.ajax({url:new URL("/api/DakSpecs/SpecInfo",window.location.href),type:"GET",contentType:"application/json"}).then(response=>{this.specInfo=response});$.ajax({url:new URL("/api/DakSpecs/Ratings",window.location.href),type:"GET",contentType:"application/json"}).then(response=>{this.seriesRatings=response})},setUnitTypeFromQueryString:function(queryStringValue){queryStringValue&&(this.unitType=queryStringValue==="imperial"||queryStringValue==="metric"?queryStringValue:"imperial")},setEnvironmentFromQueryString:function(queryStringValue){(queryStringValue==="other"||this.environments.some(x=>x.name==queryStringValue))&&(this.environment=queryStringValue)},setSelectedResolutionFromQueryString:function(queryStringValue){this.selectedResolution=queryStringValue?queryStringValue=="fit"?this.fitToWallResolution:queryStringValue=="custom"?this.customResolution:this.resolutions.find(x=>x.name==queryStringValue):this.resolutions[0]},setSelectedPixelPitchFromQueryString:function(queryStringValue){this.selectedPixelPitch=queryStringValue?this.pixelPitches.find(x=>x.pixelPitch==queryStringValue):this.pixelPitches.find(x=>x.pixelPitch==this.defaultPixelPitch)||this.pixelPitches[0]},setSelectedProductSeriesFromQueryString:function(queryStringValue){this.selectedProductSeries=queryStringValue?this.productSeries.find(x=>x.ModuleID==queryStringValue):this.productSeries.find(x=>x.Series.Name==this.defaultProductSeries)||this.productSeries[0]},distinctProductSeriesPixelPitches:function(productSeries){var result=productSeries.map(a=>a.PixelPitch).sort((a,b)=>a.pixelPitch>b.pixelPitch?1:b.pixelPitch>a.pixelPitch?-1:0),unique=[],distinct=[];for(let i=0;i<result.length;i++){let keyValue=result[i].pixelPitch.toString().concat(result[i].UnitOfMeasure);unique[keyValue]||(distinct.push(result[i]),unique[keyValue]=1)}return distinct},refreshVideoWall:function(){var panels=this.getNumberOfPanels(this.selectedProductSeries,this.selectedResolution);this.panelsWide=panels.width;this.panelsHigh=panels.height;this.ensureWallSize()},toggleChooseButton:function(headerId,buttonId){for(var docChildren,buttons=document.getElementsByClassName("configurator-button"),i=0;i<buttons.length;i++)buttons[i].id!=buttonId&&buttons[i].innerText=="Done"&&buttons[i].click();docChildren=document.getElementById(headerId).getElementsByClassName("configurator-button");for(let i=0;i<docChildren.length;i++)childButton=docChildren[i],childButton.innerText=childButton.innerText==="Choose"?"Done":"Choose"},setupScrollStyleForTable:function(){const storeScroll=()=>{var table=document.querySelector(".dak-tbl-panelSpecs");table&&(document.documentElement.dataset.scroll=document.querySelector(".dak-tbl-panelSpecs").scrollLeft)};var table=document.querySelector(".dak-tbl-panelSpecs");table&&(document.querySelector(".dak-tbl-panelSpecs").addEventListener("scroll",debounce(storeScroll),{passive:!0}),storeScroll())},getConvertedFeetOrMeterDimensions:function(dimensions){var newDimensions=dimensions;return this.unitType==="metric"?newDimensions={width:this.conversions.millimeterToMeter(dimensions.width),height:this.conversions.millimeterToMeter(dimensions.height)}:this.unitType==="imperial"&&(newDimensions={width:this.conversions.millimeterToFeet(dimensions.width),height:this.conversions.millimeterToFeet(dimensions.height)}),newDimensions},getProductSeriesPanelDimensionsString:function(productSeries){var dimensions=this.getConvertedFeetOrMeterDimensions({width:productSeries.Width_mm,height:productSeries.Height_mm});return this.getDimensionsAsString(dimensions)},getProductSeriesDisplayDimensionsString:function(product){var totalPanelCountDimensions=this.getPanelDimensions(product),dimensions=this.getConvertedFeetOrMeterDimensions({width:product.Width_mm*totalPanelCountDimensions.width,height:product.Height_mm*totalPanelCountDimensions.height});return this.getDimensionsAsString(dimensions)},getDimensionsAsString:function(dimensions){return this.unitType==="metric"?dimensions.width.toLocaleString(undefined,{maximumFractionDigits:3})+"m x "+dimensions.height.toLocaleString(undefined,{maximumFractionDigits:3})+"m":this.getFeetandInches(dimensions.width)+" x "+this.getFeetandInches(dimensions.height)},getFeetandInches:function(feetAsDecimal){var feet=Math.floor(feetAsDecimal),inches=Math.round((feetAsDecimal-feet)*12),returnVal=feet+"'";return inches>0&&(returnVal+=" "+inches+'"'),returnVal}},mounted:function(){this.getProductSeries();this.setupScrollStyleForTable()},watch:{environment:function(newEnvironment){newEnvironment!=="other"&&this.wallWidth<this.minWallDimensions.width&&(this.wallWidth=this.minWallDimensions.width)},wallWidth:function(){var panels=this.getNumberOfPanels(this.selectedProductSeries,this.selectedResolution);this.panelsWide=panels.width},wallHeight:function(){var panels=this.getNumberOfPanels(this.selectedProductSeries,this.selectedResolution);this.panelsHigh=panels.height},wallWidthInUnitsValue:function(value){this.setWallWidth(value)},wallHeightInUnitsValue:function(value){this.setWallHeight(value)},urlQueryString:function(newQueryString){var replace=this.$router.replace({query:newQueryString});replace&&replace.catch(function(error){if(error.name!=="NavigationDuplicated")throw error;})},sessionVariables:function(newSessionVars){Daktronics.SessionVariables.set("videoWall",JSON.stringify(newSessionVars))},selectedResolution:function(){this.isInit&&this.availablePixelPitches.length>0&&!this.availablePixelPitches.includes(this.selectedPixelPitch)?this.selectedPixelPitch=this.availablePixelPitches[0]:this.refreshVideoWall()},selectedPixelPitch:function(){if(this.isInit&&this.availableProductSeries.length>0&&!this.availableProductSeries.includes(this.selectedProductSeries)){var npnProductSeries=this.availableProductSeries.find(x=>x.Series.Name=="NPN");this.selectedProductSeries=npnProductSeries!=null?npnProductSeries:this.availableProductSeries[0]}},selectedProductSeries:function(){this.refreshVideoWall()},availableProductSeries:function(){this.$nextTick(function(){this.mobile===!1&&$('[data-toggle="tooltip"]').tooltip()})},selectedCountry:function(value){Daktronics.Cookies.set("VideoWallCountry",value,30);this.getProductSeries()}}});
//# sourceMappingURL=/sb/nmap/js-video-wall.js.v638802134746373307