Best JavaScript code snippet using playwright-internal
monitor.js
Source:monitor.js  
1define([2	"jquery",3	"underscore",4	"backbone",5	"circleprogress",6	"text!views/monitor",7	"text!views/header",8	// "css!cs/stylesheets/css/layout.css",9	// "css!cs/stylesheets/css/common.css",10	// "css!cs/stylesheets/main.css",11	// "css!cs/stylesheets/css/animate.css",12	// "css!cs/stylesheets/css/all.css",13	// "css!cs/stylesheets/css/component.css",14	// "css!cs/stylesheets/css/interaction.css"15], function (16	$,17	_,18	Backbone,19	circleprogress,20	monitor,21	header22) {23	var NetworkModel = Backbone.Model.extend({24		url: '/network/networks',25		parse: function (result) {26			return result;27		}28	});29	var UpsModel = Backbone.Model.extend({30		url: '/ups/list',31		parse: function (result) {32			return result;33		}34	});35	var UpsDeviceModel = Backbone.Model.extend({36		url: '/ups/device',37		parse: function (result) {38			return result;39		}40	});41	var ManagerModel = Backbone.Model.extend({42		url: '/manager/managers',43		parse: function (result) {44			return result;45		}46	});47	return Backbone.View.extend({48		el: '.wrapper',49		selectedRow: undefined,50		upsList: undefined,51		initialize: function () {52			this.$el.html(monitor);53			this.$el.closest('body').find('header').html(header);54			this.upsModel = new UpsModel();55			this.listenTo(this.upsModel, "sync", this.getUpsList);56			this.upsModel.fetch();57		},58		events: {59			"click #btn": "imgTest",60			"click .fa-search": "imageShow",61			"click .fa-times": "closePopup"62		},63		imageShow: function (event) {64			var target = event.currentTarget;65			var targetPopup =  $(target).closest('.popBox');66			var imgPopTitle = targetPopup.find('.popTit').find('.popText').text();67			var imageFile = $(target).attr('value');68			var imagePath = 'http://119.207.78.144:9091/upload/read/'+imageFile; 69			//var imagePath = 'http://127.0.0.1:9091/upload/read/'+imageFile; 70			this.$el.find(".photoPOP").css('display','block');71			this.$el.find(".photoPOP").find('.tit').find('span').text(imgPopTitle);72			this.$el.find(".photoPOP").find('.imgBox').find("img").attr('src',imagePath);73		},74		closePopup: function(){75			this.$el.find(".photoPOP").css('display','none');76		},77		getNetworkList: function (model) {78			var _this = this;79			var data = model.toJSON();80			var _networkList = Object.keys(data).map(function (i) {81				var _upsId = data[i]["ups_id"] || null;82				if (_upsId) {83					var _networkId = data[i]["id"];84					var _deviceId = data[i]["device_id"];85					var $target = $("#ups-panel-" + _upsId).find(".devList");86					var $mapTarget = $('.upsArea-' + _upsId);87					if (_deviceId === 1) {88						// ups ìì89						var leng = $target.find('.cctv-state').length;90						if (leng === 1) {91							$target.find('.cctv-state').attr("id", "cctv-" + _networkId);92							$target.find('.cctv-state').attr("device-type", _deviceId);93						} else {94							var hasId = $($target.find('.cctv-state')[0]).attr("id");95							$($target.find('.cctv-state')[0]).attr("id", "cctv-" + _networkId);96							$($target.find('.cctv-state')[0]).attr("device-type", _deviceId);97							if (!hasId) {98								$($target.find('.cctv-state')[1]).attr("id", "cctv-" + _networkId);99								$($target.find('.cctv-state')[1]).attr("device-type", _deviceId);100							}101						}102					}103					else if (_deviceId === 2) {104						var leng = $target.find('.scanner-state').length;105						if (leng === 1) {106							$target.find('.scanner-state').attr("id", "scanner-" + _networkId);107						} else {108							var hasId = $($target.find('.scanner-state')[0]).attr("id");109							$($target.find('.scanner-state')[0]).attr("id", "scanner-" + _networkId);110							if (!hasId) {111								$($target.find('.scanner-state')[1]).attr("id", "scanner-" + _networkId);112							}113						}114					}115					else if (_deviceId === 3) {116						var leng = $target.find('.ups-state').length;117						if (leng === 1) {118							$target.find('.ups-state').attr("id", "ups-" + _networkId);119						} else {120							var hasId = $($target.find('.ups-state')[0]).attr("id");121							$($target.find('.ups-state')[0]).attr("id", "ups-" + _networkId);122							if (!hasId) {123								$($target.find('.ups-state')[1]).attr("id", "ups-" + _networkId);124							}125						}126					}127					else if (_deviceId === 4) {128						var leng = $target.find('.server-state').length;129						if (leng === 1) {130							$target.find('.server-state').attr("id", "server-" + _networkId);131						} else {132							var hasId = $($target.find('.server-state')[0]).attr("id");133							$($target.find('.server-state')[0]).attr("id", "server-" + _networkId);134							if (!hasId) {135								$($target.find('.server-state')[1]).attr("id", "server-" + _networkId);136							}137						}138					}139					else if (_deviceId === 5) {140						var leng = $target.find('.wifi-state').length;141						if (leng === 1) {142							$target.find('.wifi-state').attr("id", "wifi-" + _networkId);143						} else {144							var hasId = $($target.find('.wifi-state')[0]).attr("id");145							$($target.find('.wifi-state')[0]).attr("id", "wifi-" + _networkId);146							if (!hasId) {147								$($target.find('.wifi-state')[1]).attr("id", "wifi-" + _networkId);148							}149						}150					}151					else if (_deviceId === 6) {152						var leng = $target.find('.repeater-state').length;153						if (leng === 1) {154							$target.find('.repeater-state').attr("id", "repeater-" + _networkId);155						} else {156							var hasId = $($target.find('.repeater-state')[0]).attr("id");157							$($target.find('.repeater-state')[0]).attr("id", "repeater-" + _networkId);158							if (!hasId) {159								$($target.find('.repeater-state')[1]).attr("id", "repeater-" + _networkId);160							}161						}162					}163					else if (_deviceId === 7) {164						$target.find('.gas-state').attr("id", "gas-status");165					}166					else if (_deviceId === 8) {167						$target.find('.phpoc-state').attr("id", "phpoc-" + _networkId);168						var leng = $target.find('.phpoc-state').length;169						if (leng === 1) {170							$target.find('.phpoc-state').attr("id", "phpoc-" + _networkId);171						} else {172							var hasId = $($target.find('.phpoc-state')[0]).attr("id");173							$($target.find('.phpoc-state')[0]).attr("id", "phpoc-" + _networkId);174							if (!hasId) {175								$($target.find('.phpoc-state')[1]).attr("id", "phpoc-" + _networkId);176							}177						}178					}179				}180				return data[i];181			});182			_this.upsDeviceRead(); // ì¬ê¸°ì setInterval183			this.interval = setInterval(_this.upsDeviceRead, 5000);184			window.logData = _this.logData;185			this.timeout = setTimeout(_this.logData, 6000);186			console.log(this);187			//setTimeout(_this.setLogData, 6000);188		},189		getUpsList: function (model) {190			var _this = this;191			var data = model.toJSON();192			_this.render(data);193			this.networkModel = new NetworkModel();194			this.listenTo(this.networkModel, "sync", this.getNetworkList);195			this.networkModel.fetch();196		},197		render: function (data) {198			var _this = this;199			_this.upsList = {};200			var _upsList = Object.keys(data).map(function (i) {201				// ups ìì ë ëë§202				_this.$el.find(".panel-list-" + i).attr("id", "ups-panel-" + data[i].id);203				_this.$el.find(".panel-list-" + i).find(".Plocation-name").text(data[i].location);204				// map ìì ë ëë§205				var j = parseInt(i) + 1;206				// upspoint id í ë¹207				_this.$el.find('.mapArea').find(".ups_" + j).attr("id", "upsPoint-" + data[i].id);208				// popup id í ë¹209				_this.$el.find('.mapArea').find('.pop_' + j).attr('id', 'popup-panel-' + data[i].id);210				_this.$el.find('.mapArea').find('.pop_' + j).find('.popTit').find('.popText').text(j+". "+data[i].location);211				_this.$el.find('.mapArea').find('.pop_' + j).find('.fa-search').attr('value', data[i].image_path);212				//network upsPoint id í ë¹213				_this.$el.find('#netBox').find('.ups_' + j).attr('id', 'upsPosition-' + data[i].id);;214				var _devArea = _this.$el.find('.devArea-' + j);215				for (let index = 0; index < _devArea.length; index++) {216					_this.$el.find('.devArea-' + j).addClass("upsArea-" + data[i].id);217				}218				data[i].deviceList = [];219				_this.upsList[data[i].id] = data[i];220				return data[i];221			});222			window.upsList = _this.upsList;223			this.managerModel = new ManagerModel();224			this.listenTo(this.managerModel, "sync", this.getManagerList);225			this.managerModel.fetch();226		},227		getManagerList: function (model) {228			var _this = this;229			var data = model.toJSON();230			var _managerList = Object.keys(data).map(function (i) {231				var _upsId = data[i]['ups_id'];232				var _level = data[i]['level'];233				var _name = data[i]['name'];234				var _tel = data[i]['tel'];235				//$target.append(data[i]);236				var $target = $('#popup-panel-' + _upsId);237				var _text = '';238				if (_level === 0) {239					_text = 'ë´ë¹ì(ì ) : ' + _name + ' ' + _tel;240					$target.find('.main').text(_text);241				}242				else if (_level === 1) {243					_text = 'ë´ë¹ì(ë¶) : ' + _name + ' ' + _tel;244					$target.find('.sub').text(_text);245				}246				return data[i];247			});248		},249		upsDeviceRead: function () {250			var _this = this;251			var model = new UpsDeviceModel();252			model.fetch({253				success: function (model, response) {254					var data = model.toJSON()255					var gasList = {};256					var upsDeviceList = Object.keys(data).map(function (i) {257						var _id = data[i]['id'];258						var hasProp = window.upsList.hasOwnProperty(_id);259						if (hasProp) {260							window.upsList[_id]["error_type"] = data[i]['error_type'];261							window.upsList[_id]["use_time"] = data[i]["use_time"];262							window.upsList[_id]["battery_remain"] = data[i]["battery_remain"];263							//window.upsList[_id]["deviceList"].push(data[i]);264							var upsId = data[i]['ups_id'];265							var deviceId = data[i]['device_id'];266							var networkId = data[i]['network_id'];267							var result = data[i]['result'];268							var $target = $('#ups-panel-' + upsId).find('.devList');269							if (deviceId === 1) {270								if (result === 'open') {271									$target.find('#cctv-' + networkId).removeClass('demer');272									$target.find('#cctv-' + networkId).addClass('dnomal');273									$(".mapArea").find('#cctv_icon-' + networkId).removeClass('demer');274									$(".mapArea").find('#cctv_icon-' + networkId).addClass('dnomal');275									276									$(".mapArea").find('#cctv_icon-' + networkId).removeClass('iconVisible');277																		278									$("#netBox").find('#cctv_net-' + networkId).removeClass('demer');279									$("#netBox").find('#cctv_net-' + networkId).addClass('dnomal');280									281								}282								else if (result === 'closed') {283									$target.find('#cctv-' + networkId).removeClass('dnomal');284									$target.find('#cctv-' + networkId).addClass('demer');285									286									287									$(".mapArea").find('#cctv_icon-' + networkId).removeClass('dnomal');288									$(".mapArea").find('#cctv_icon-' + networkId).addClass('demer');289									290									var devShowClz = $(".mapArea").find('#cctv_icon-' + networkId).hasClass('devShow');291									if(devShowClz){292										$(".mapArea").find('#cctv_icon-' + networkId).removeClass('devShow');293									}294									$("#netBox").find('#cctv_net-' + networkId).removeClass('dnomal');295									$("#netBox").find('#cctv_net-' + networkId).addClass('demer');296								}297							}298							else if (deviceId === 2) {299								if (result === 'open') {300									$target.find('#scanner-' + networkId).removeClass('demer');301									$target.find('#scanner-' + networkId).addClass('dnomal');302									$target.find('#scanner-' + networkId).html('<img src="./images/scanner_nomal.png">ì¤ìºë');303									$(".mapArea").find('#scanner_icon-' + networkId).removeClass('demer');304									$(".mapArea").find('#scanner_icon-' + networkId).addClass('dnomal');305									$(".mapArea").find('#scanner_icon-' + networkId).html('<img src="./images/scanner_nomal.png">');306									307									$("#netBox").find('#scanner_net-' + networkId).removeClass('demer');308									$("#netBox").find('#scanner_net-' + networkId).addClass('dnomal');309									$("#netBox").find('#scanner_net-' + networkId).html('<img src="./images/scanner_nomal.png">');310									311									312									313								}314								else if (result === 'closed') {315									$target.find('#scanner-' + networkId).removeClass('dnomal');316									$target.find('#scanner-' + networkId).addClass('demer');317									$target.find('#scanner-' + networkId).html('<img src="./images/scanner_emer.png">ì¤ìºë');318									319									$(".mapArea").find('#scanner_icon-' + networkId).removeClass('dnomal');320									$(".mapArea").find('#scanner_icon-' + networkId).addClass('demer');321									$(".mapArea").find('#scanner_icon-' + networkId).html('<img src="./images/scanner_emer.png">');322									323									var devShowClz = $(".mapArea").find('#scanner_net-' + networkId).hasClass('devShow');324									if(devShowClz){325										$(".mapArea").find('#scanner_net-' + networkId).removeClass('devShow');326									}327									$("#netBox").find('#scanner_net-' + networkId).removeClass('dnomal');328									$("#netBox").find('#scanner_net-' + networkId).addClass('demer');329									$("#netBox").find('#scanner_net-' + networkId).html('<img src="./images/scanner_emer.png">');330								}331							}332							else if (deviceId === 3) {333								if (result === 'open') {334									$target.find('#ups-' + networkId).removeClass('demer');335									$target.find('#ups-' + networkId).addClass('dnomal');336									$(".mapArea").find('#ups_icon-' + networkId).removeClass('demer');337									$(".mapArea").find('#ups_icon-' + networkId).addClass('dnomal');338									$("#netBox").find('#ups_net-' + networkId).removeClass('demer');339									$("#netBox").find('#ups_net-' + networkId).addClass('dnomal');340								}341								else if (result === 'closed') {342									$target.find('#ups-' + networkId).removeClass('dnomal');343									$target.find('#ups-' + networkId).addClass('demer');344									$(".mapArea").find('#ups_icon-' + networkId).removeClass('dnomal');345									$(".mapArea").find('#ups_icon-' + networkId).addClass('demer');346									347									var devShowClz = $(".mapArea").find('#ups_icon-' + networkId).hasClass('devShow');348									if(devShowClz){349										$(".mapArea").find('#ups_icon-' + networkId).removeClass('devShow');350									}351									$("#netBox").find('#ups_net-' + networkId).removeClass('dnomal');352									$("#netBox").find('#ups_net-' + networkId).addClass('demer');353									354								}355							}356							else if (deviceId === 4) {357								if (result === 'open') {358									$target.find('#server-' + networkId).removeClass('demer');359									$target.find('#server-' + networkId).addClass('dnomal');360									$(".mapArea").find('#server_icon-' + networkId).removeClass('demer');361									$(".mapArea").find('#server_icon-' + networkId).addClass('dnomal');362									$("#netBox").find('#server_net-' + networkId).removeClass('demer');363									$("#netBox").find('#server_net-' + networkId).addClass('dnomal');364								}365								else if (result === 'closed') {366									$target.find('#server-' + networkId).removeClass('dnomal');367									$target.find('#server-' + networkId).addClass('demer');368									$(".mapArea").find('#server_icon-' + networkId).removeClass('dnomal');369									$(".mapArea").find('#server_icon-' + networkId).addClass('demer');370									var devShowClz = $(".mapArea").find('#server_icon-' + networkId).hasClass('devShow');371									if(devShowClz){372										$(".mapArea").find('#server_icon-' + networkId).removeClass('devShow');373									}374									$("#netBox").find('#server_net-' + networkId).removeClass('dnomal');375									$("#netBox").find('#server_net-' + networkId).addClass('demer');376								}377							}378							else if (deviceId === 5) {379								if (result === 'open') {380									$target.find('#wifi-' + networkId).removeClass('demer');381									$target.find('#wifi-' + networkId).addClass('dnomal');382									$(".mapArea").find('#wifi_icon-' + networkId).removeClass('demer');383									$(".mapArea").find('#wifi_icon-' + networkId).addClass('dnomal');384									$("#netBox").find('#wifi_net-' + networkId).removeClass('demer');385									$("#netBox").find('#wifi_net-' + networkId).addClass('dnomal');386								}387								else if (result === 'closed') {388									$target.find('#wifi-' + networkId).removeClass('dnomal');389									$target.find('#wifi-' + networkId).addClass('demer');390									$(".mapArea").find('#wifi_icon-' + networkId).removeClass('dnomal');391									$(".mapArea").find('#wifi_icon-' + networkId).addClass('demer');392									var devShowClz = $(".mapArea").find('#wifi_icon-' + networkId).hasClass('devShow');393									if(devShowClz){394										$(".mapArea").find('#wifi_icon-' + networkId).removeClass('devShow');395									}396									$("#netBox").find('#wifi_net-' + networkId).removeClass('dnomal');397									$("#netBox").find('#wifi_net-' + networkId).addClass('demer');398								}399							}400							else if (deviceId === 6) {401								if (result === 'open') {402									$target.find('#repeater-' + networkId).removeClass('demer');403									$target.find('#repeater-' + networkId).addClass('dnomal');404									$(".mapArea").find('#repeater_icon-' + networkId).removeClass('demer');405									$(".mapArea").find('#repeater_icon-' + networkId).addClass('dnomal');406									$("#netBox").find('#repeater_net-' + networkId).removeClass('demer');407									$("#netBox").find('#repeater_net-' + networkId).addClass('dnomal');408								}409								else if (result === 'closed') {410									$target.find('#repeater-' + networkId).removeClass('dnomal');411									$target.find('#repeater-' + networkId).addClass('demer');412									$(".mapArea").find('#repeater_icon-' + networkId).removeClass('dnomal');413									$(".mapArea").find('#repeater_icon-' + networkId).addClass('demer');414									var devShowClz = $(".mapArea").find('#repeater_icon-' + networkId).hasClass('devShow');415									if(devShowClz){416										$(".mapArea").find('#repeater_icon-' + networkId).removeClass('devShow');417									}418									$("#netBox").find('#repeater_net-' + networkId).removeClass('dnomal');419									$("#netBox").find('#repeater_net-' + networkId).addClass('demer');420								}421							}422							else if (deviceId === 7) {423								var hasProp = gasList.hasOwnProperty(upsId);424								if (!hasProp) {425									gasList[upsId] = [];426								}427								gasList[upsId].push(result);428								var gasLeng = gasList[upsId].length;429								if (gasLeng === 4) {430									var _index = gasList[upsId].indexOf('closed');431									if (_index === -1) {432										$target.find('#gas-status').removeClass('demer');433										$target.find('#gas-status').addClass('dnomal');434										$(".mapArea").find('.upsArea-' + upsId + '#gas-status').removeClass('demer');435										$(".mapArea").find('.upsArea-' + upsId + '#gas-status').addClass('dnomal');436									} else {437										$target.find('#gas-status').removeClass('dnomal');438										$target.find('#gas-status').addClass('demer');439										var devShowClz = $(".mapArea").find('.upsArea-' + upsId + '#gas-status').hasClass('devShow');440										if(devShowClz){441											$(".mapArea").find('.upsArea-' + upsId + '#gas-status').removeClass('devShow');442										}443										$(".mapArea").find('.upsArea-' + upsId + '#gas-status').removeClass('dnomal');444										$(".mapArea").find('.upsArea-' + upsId + '#gas-status').addClass('demer');445									}446								}447							}448							else if (deviceId === 8) {449								if (result === 'open') {450									$target.find('#phpoc-' + networkId).removeClass('demer');451									$target.find('#phpoc-' + networkId).addClass('dnomal');452									$("#netBox").find('#phpoc_net-' + networkId).removeClass('demer');453									$("#netBox").find('#phpoc_net-' + networkId).addClass('dnomal');454									455								}456								else if (result === 'closed') {457									$target.find('#phpoc-' + networkId).removeClass('dnomal');458									$target.find('#phpoc-' + networkId).addClass('demer');459									$("#netBox").find('#phpoc_net-' + networkId).removeClass('dnomal');460									$("#netBox").find('#phpoc_net-' + networkId).addClass('demer');461								}462							}463						} // end hasProp ì ë¬´464						return data[i];465					});466					window.main.view.upsBinding();467					window.upsDeviceList = [];468					window.upsDeviceList = upsDeviceList;469				},470				error: function (model, response) {471				},472			});473		},474		upsBinding: function () {475			var _this = this;476			var upsList = window.upsList;477			for (var key in upsList) {478				if (upsList.hasOwnProperty(key)) {479					var _id = upsList[key]["id"];480					var $upsTarget = $('#ups-panel-' + _id);481					var $popTarget = $('#popup-panel-' + _id);482					var errorType = upsList[key]["error_type"]; // 0:ì ì, 1: ì ì , 2: ë°©ì , 3:ë¤í¸ìí¬ ì¥ì 483					var upsHasNormalClz = $upsTarget.find(".line-condition").hasClass("nomal");484					var upsHasEmerClz = $upsTarget.find(".line-condition").hasClass("emer");485					var networkHasNormalClz = $upsTarget.find(".network-condition").hasClass("nomal");486					var networkHasEmerClz = $upsTarget.find(".network-condition").hasClass("emer");487					var _bottomNomalHTHML = '<img src="./images/1st.png"><img src="./images/1st.png"><img src="./images/1st.png">';488					var _bottomErrorHTHML = '<img src="./images/2nd.png"><img src="./images/2nd.png"><img src="./images/2nd.png">';489					var upsCanvasLeng = $upsTarget.find('.circle').find('canvas').length;490					var popCanvasLeng = $popTarget.find('.circle').find('canvas').length;491					var upsSpanLeng = $upsTarget.find(".line-condition").find('span').length;492					if (errorType !== 1) {493						// ups ìì494						if (upsCanvasLeng === 1) {495							$upsTarget.find('.circle').children().css('display', 'none');496							$upsTarget.find(".line-condition").removeClass("circle");497						}498						// íì
 ìì499						if (popCanvasLeng === 1) {500							$popTarget.find('.circle').children().css('display', 'none');501							$popTarget.find(".line-condition").removeClass("circle");502						}503						// // $upsTarget.find(".circle").empty();504					}505					else if (errorType === 1) {506						//ups ìì507						$upsTarget.find(".line-condition").removeClass("nomal");508						$upsTarget.find(".line-condition").removeClass("emer");509						$upsTarget.find(".line-condition").addClass("circle");510						// if(upsSpanLeng === 0){511						// 	$upsTarget.find(".line-condition").html("<span></span>");512						// }513						$upsTarget.find(".ac").empty();514						$upsTarget.find('.ups-state').find('.bottom').empty();515						// íì
 ìì516						$popTarget.find(".line-condition").removeClass("nomal");517						$popTarget.find(".line-condition").removeClass("emer");518						$popTarget.find(".line-condition").addClass("circle");519						// if(popCanvasLeng === 0){520						// 	$popTarget.find(".line-condition").html("<span></span>");521						// }522						$popTarget.find(".ac").empty();523						$popTarget.find('.ups-state').find('.bottom').empty();524					}525					/** upsPoint ìííì - errorType=0 ì´ì¸ì ê°ìë class=Pemer ì¶ê° **/526					if (errorType === 0) {527						$('#upsPoint-' + _id).removeClass('Pemer');528						$('#upsPosition-' + _id).removeClass('Pemer');529						$('#popup-panel-' + _id).removeClass('pop-emer');530						$('#popup-panel-' + _id).addClass('pop-nomal');531					} else {532						$('#upsPoint-' + _id).addClass('Pemer');533						$('#upsPosition-' + _id).addClass('Pemer');534						$('#popup-panel-' + _id).removeClass('pop-nomal');535						$('#popup-panel-' + _id).addClass('pop-emer');536						$('#popup-panel-' + _id + '.pop-emer').css('display', 'block');537						var hasShow = $('#popup-panel-' + _id).hasClass('show');538						if (hasShow) {539							$('#popup-panel-' + _id).removeClass('show');540						}541					}542					/** ups ìí íì **/543					// ì ì ê³µê¸ ì ì544					if (errorType === 0) {545						// ups ìì546						// ups-state ìì ì¸í°ë ì
547						if (!upsHasNormalClz && upsHasEmerClz) {548							$upsTarget.find(".line-condition").removeClass("emer");549							$upsTarget.find(".line-condition").addClass("nomal");550							$upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);551							$popTarget.find(".line-condition").removeClass("emer");552							$popTarget.find(".line-condition").addClass("nomal");553							$popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);554						}555						else if (!upsHasNormalClz && !upsHasEmerClz) {556							$upsTarget.find(".line-condition").addClass("nomal");557							$upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);558							$popTarget.find(".line-condition").addClass("nomal");559							$popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);560						}561						// network-state ìì ì¸í°ë ì
562						if (!networkHasNormalClz && networkHasEmerClz) {563							// ups-state564							$upsTarget.find(".network-condition").removeClass("emer");565							$upsTarget.find(".network-condition").addClass("nomal");566							$upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);567							$popTarget.find(".network-condition").removeClass("emer");568							$popTarget.find(".network-condition").addClass("nomal");569							$popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);570						}571						else if (!networkHasNormalClz && !networkHasEmerClz) {572							$upsTarget.find(".network-condition").addClass("nomal");573							$upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);574							$popTarget.find(".network-condition").addClass("nomal");575							$popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);576						}577						var _html = '<i class="fas fa-plug"></i><br>'578							+ '<span>220 V</span>';579						$upsTarget.find(".ac").html(_html);580						$popTarget.find(".ac").html(_html);581						$('#popup-panel-' + _id + '.pop-nomal').css('display', 'none');582						var hasShow = $(".popBox").siblings().hasClass('show');583						if (hasShow) {584							$('#popup-panel-' + _id + '.pop-nomal').addClass('show');585						}586					}587					// ì ì -ì ì ê³µê¸ ì¥ì (ë°°í°ë¦¬ ì¬ì©)588					else if (errorType === 1) {589						console.log('errorType-->',upsList[key]);590						// ups ìì ì°¨í¸591						$upsTarget.find('.circle').children().css('display', 'block');592						var _batteryRemain = upsList[key]["battery_remain"];593						594						var $upsCircle = $upsTarget.find('.circle');595						var upsHasCanvas = $upsCircle.find('canvas').length;596						var _percentVal = _batteryRemain / 100;597						if (upsHasCanvas === 0) {598							//_this.chartFnc(_batteryRemain);599							$upsTarget.find(".circle").html("<span class='bettery-per'></span>");600							$upsTarget.find('.circle').children().css('display', 'block');601							$upsCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');602							603							$upsCircle.circleProgress({604								value: _percentVal,605								startAngle: -Math.PI / 6 * 3,606								lineCap: 'round',607								fill: { color: '#22BD09' }608							}).on('circle-animation-progress', function (event, progress) {609								610							});611						}612						else if (upsHasCanvas >= 1) {613							$upsCircle.circleProgress('value', _percentVal);614							$upsCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');615						}616						//popup ìì ì°¨í¸617						$popTarget.find('.circle').children().css('display', 'block');618						var _batteryRemain = upsList[key]["battery_remain"];619						var $popCircle = $popTarget.find('.circle');620						var popHasCanvas = $popCircle.find('canvas').length;621						var _percentVal = _batteryRemain / 100;622						if (popHasCanvas === 0) {623							//_this.chartFnc(_batteryRemain);624							$popTarget.find(".line-condition").html("<span class='bettery-per'></span>");625							$popTarget.find('.circle').children().css('display', 'block');626							$popCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');627							$popCircle.circleProgress({628								value: _percentVal,629								startAngle: -Math.PI / 6 * 3,630								lineCap: 'round',631								fill: { color: '#22BD09' }632							}).on('circle-animation-progress', function (event, progress) {633							});634						}635						else if (popHasCanvas >= 1) {636							$popCircle.circleProgress('value', _percentVal);637							$popCircle.find('span').html('<i class="fas fa-car-battery"></i><br>' + _batteryRemain + '<i>%</i>');638						}639						// ë°°í°ë¦¬ ì¬ì©ìê° ì ì©640						/* sample */ 641						// var _useTime = String(1.26);642						var usedTime = upsList[key]["use_time"];643						if(usedTime){644							var _useTime = String(upsList[key]["use_time"]);645							var subTime = _useTime.split('.');646							var usedHour = subTime[0] * 60;647							var subMin = (subTime[1].length !== 1) ? subTime[1] : subTime[1] + "0";648							var usedMinute = Math.round(60 * (subMin / 100));649							var _time = usedHour + usedMinute;650							//$upsTarget.find('.bottom').text('29min');651							$upsTarget.find('.ups-state').find('.bottom').text(_time + 'min');652							$popTarget.find('.ups-state').find('.bottom').text(_time + 'min');653						} else {654							$upsTarget.find('.ups-state').find('.bottom').text('--min');655							$popTarget.find('.ups-state').find('.bottom').text('--min');656						}657						// network-state ìì ì¸í°ë ì
658						if (!networkHasNormalClz && networkHasEmerClz) {659							$upsTarget.find(".network-condition").removeClass("emer");660							$upsTarget.find(".network-condition").addClass("nomal");661							$upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);662							$popTarget.find(".network-condition").removeClass("emer");663							$popTarget.find(".network-condition").addClass("nomal");664							$popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);665						}666						else if (!networkHasNormalClz && !networkHasEmerClz) {667							$upsTarget.find(".network-condition").addClass("nomal");668							$upsTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);669							$popTarget.find(".network-condition").addClass("nomal");670							$popTarget.find('.network-state').find('.bottom').html(_bottomNomalHTHML);671						}672					}673					// ë°©ì , ë¤í¸ìí¬ ì¥ì 674					else if (errorType === 2) {675						// ups-state ìì								676						if (upsHasNormalClz && !upsHasEmerClz) {677							// ups ìì678							$upsTarget.find(".line-condition").removeClass("nomal");679							$upsTarget.find(".line-condition").addClass("emer");680							$upsTarget.find('.bottom').html(_bottomErrorHTHML);681							// pop ìì682							$popTarget.find(".line-condition").removeClass("nomal");683							$popTarget.find(".line-condition").addClass("emer");684							$popTarget.find('.bottom').html(_bottomErrorHTHML);685						}686						else if (!upsHasNormalClz && !upsHasEmerClz) {687							$upsTarget.find(".line-condition").addClass("emer");688							$upsTarget.find('.bottom').html(_bottomErrorHTHML);689							$popTarget.find(".line-condition").addClass("emer");690							$popTarget.find('.bottom').html(_bottomErrorHTHML);691						}692						// network-state ìì693						if (networkHasNormalClz && !networkHasEmerClz) {694							$upsTarget.find(".network-condition").removeClass("nomal");695							$upsTarget.find(".network-condition").addClass("emer");696							$upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);697							$popTarget.find(".network-condition").removeClass("nomal");698							$popTarget.find(".network-condition").addClass("emer");699							$popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);700						}701						else if (!networkHasNormalClz && !networkHasEmerClz) {702							$upsTarget.find(".network-condition").addClass("emer");703							$upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);704							$popTarget.find(".network-condition").addClass("emer");705							$popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);706						}707						var _html = '<i class="fas fa-car-battery"></i><br>'708							+ '<span>00 %</span>';709						$upsTarget.find(".ac").html(_html);710						$popTarget.find(".ac").html(_html);711					}712					// ë¤í¸ìí¬ ì¥ì 713					else if (errorType === 3) {714						// ups-state ìì																715						if (!upsHasNormalClz && upsHasEmerClz) {716							$upsTarget.find(".line-condition").removeClass("emer");717							$upsTarget.find(".line-condition").addClass("nomal");718							$upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);719							$popTarget.find(".line-condition").removeClass("emer");720							$popTarget.find(".line-condition").addClass("nomal");721							$popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);722						}723						else if (!upsHasNormalClz && !upsHasEmerClz) {724							$upsTarget.find(".line-condition").addClass("nomal");725							$upsTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);726							$popTarget.find(".line-condition").addClass("nomal");727							$popTarget.find('.ups-state').find('.bottom').html(_bottomNomalHTHML);728						}729						// network-state ìì																730						if (networkHasNormalClz && !networkHasEmerClz) {731							$upsTarget.find(".network-condition").removeClass("nomal");732							$upsTarget.find(".network-condition").addClass("emer");733							$upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);734							$popTarget.find(".network-condition").removeClass("nomal");735							$popTarget.find(".network-condition").addClass("emer");736							$popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);737						}738						else if (!networkHasNormalClz && !networkHasEmerClz) {739							$upsTarget.find(".network-condition").addClass("emer");740							$upsTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);741							$popTarget.find(".network-condition").addClass("emer");742							$popTarget.find('.network-state').find('.bottom').html(_bottomErrorHTHML);743						}744						var _html = '<i class="fas fa-plug"></i><br>'745							+ '<span>220 V</span>';746						$upsTarget.find(".ac").html(_html);747						$popTarget.find(".ac").html(_html);748					}749				}750			}751		},752		logData: function () {753			var _this = this;754			var upsDeviceList = window.upsDeviceList;755			if (upsDeviceList) {756				var delaySec = 200;757				for (i in upsDeviceList) {758					(function (ii) {759						setTimeout(function () {760							var deviceId = upsDeviceList[ii].device_id;761							var _logListLeng = $('.logList').find('li').length;762							if (_logListLeng >= 50) {763								$('.logList').find('li:last').remove();764							}765							if (upsDeviceList[ii].result === 'open') {766								//$('.logList').prepend('<li>' + upsDeviceList[ii].device_name + '   ' + upsDeviceList[ii].ups_location + '    -->    ì ì</li>');767								$('.logList').prepend('<li>NMS' + upsDeviceList[ii].device_idx + 'A' + upsDeviceList[ii].device_index + '   '+upsDeviceList[ii].port+'</li>');768							}769							else if (upsDeviceList[ii].result === 'closed') {770								//$('.logList').prepend('<li style="color:#ff0000;">' + upsDeviceList[ii].device_name + '   ' + upsDeviceList[ii].ups_location + '    -->    ì¥ì </li>');771								$('.logList').prepend('<li style="color:#ff0000;">NMS' + upsDeviceList[ii].device_idx + 'A' + upsDeviceList[ii].device_index + '   '+upsDeviceList[ii].port+'</li>');772							}773							if (ii == (upsDeviceList.length - 1)) {774								this.logData();775							}776						}, ii * delaySec)777					})(i);778				}779			}780		},781		destroy: function () {782			clearInterval(this.interval);783			clearTimeout(this.timeout);784			this.undelegateEvents();785		},786	});...memoryRoomMine.js
Source:memoryRoomMine.js  
1var memoryRoomMine = {2    setup: function(room){3        var runLinks = require('runLinks');4        // Memory objects5        var mem = Memory.rooms[room.name];6        for (i in mem.sources) {7            mem.sources[i]['slots'] = mem.sources[i].plain;8            mem.sources[i]['work'] = 5;9            mem.sources[i]['energy'] = Game.getObjectById(mem.sources[i].id).energy;10        }11        // Uniquely initialised room properties ================================12        // Get position of spawn13        if (typeof mem.posSpawn === 'undefined') {14            var spawn = room.find(FIND_STRUCTURES, {15                filter: (structure) => {return (structure.structureType == STRUCTURE_SPAWN)}});16            if (spawn.length) {17                var spawn = spawn[0];18                mem.posSpawn = {x: spawn.pos.x, y:spawn.pos.y};19            }20        }21        // Dynamic room properties =============================================22        // Find construction sites23        var sites = room.find(FIND_CONSTRUCTION_SITES);24        // Find dropped energy25        var piles = room.find(FIND_DROPPED_RESOURCES,26            {filter: (dropped) => {return (dropped.energy > (room.carryCapacity / 3))}});27        // Find energy sinks28        var sinks = room.find(FIND_STRUCTURES, {29            filter: (structure) => {return (((30                structure.structureType == STRUCTURE_EXTENSION ||31                structure.structureType == STRUCTURE_SPAWN) &&32                structure.energy < structure.energyCapacity) ||33                (structure.structureType == STRUCTURE_TOWER &&34                structure.energy < structure.energyCapacity / 2) ||35                (structure.structureType == STRUCTURE_TERMINAL &&36                _.sum(Game.rooms.E54N48.terminal.store) < 200000));}});37        mem.links_sinks = [];38        mem.links_sources = [];39        mem.objectsSites = sites;40        mem.objectsPiles = piles;41        mem.objectsSinks = sinks;42        // List jobs ===========================================================43        mem.joblistPickup = [];44        mem.joblistRepairRoads = [];45        mem.joblistRepairContainers = [];46        mem.joblistRepairWalls = [];47        mem.joblistRepairRamps = [];48        var defense = 1000;49        // List of pickup jobs -----------------------------------------------50        // Currently, list of pickups is generated afresh every single tick51        // Any worker thats full52        //for(var i in mem.creeps.workers) {53        //    var worker = Game.getObjectById(mem.creeps.workers[i])54        //    if (worker.carry.energy == worker.carryCapacity &&55        //        !_.some(worker.id, mem.jobs.pickups)) {56        //        mem.jobs.pickups.push(worker.id)57        //    }58        //}59        // Any dropped ressources 100+60        var drops = (room.find(FIND_DROPPED_RESOURCES, {61            filter: {resourceType: RESOURCE_ENERGY}}))62        if (drops.length) {63            for(var i = 0; i < drops.length; i++) {64                var drop = drops[i]65                if (!_.some( mem.joblistPickup, drop.id) &&66                    drop.amount >= 100) {67                    mem.joblistPickup.push(drop.id)68                }69            }70        }71        // Any container with 500+72        var containers = room.find(FIND_STRUCTURES, {filter: {structureType: STRUCTURE_CONTAINER}});73        if (containers.length) {74            for(var c = 0; c < containers.length; c++) {75                var cont = containers[c]76                if (!_.some(cont.id, mem.joblistPickup) &&77                    cont.store[RESOURCE_ENERGY] >= 200) {78                    mem.joblistPickup.push(cont.id)79                }80            }81        }82        // Run Links -----------------------------------------------------------83        // /*/*84        // //Links given my run.links85        // var links = mem.links86        // if (typeof links != 'undefined' &&87        //     links.length) {88        //     for(var link in links) {89        //         thislink = Game.getObjectById(link)90        //         mem.joblistPickup.push(thislink.id)91        //     }92        // }93        // // Links if three links and link 3 full94        // var links = room.find(FIND_STRUCTURES, {95        //     filter: (structure) => {96        //         return (structure.structureType == STRUCTURE_LINK)}});97        // if (links.length > 2 &&98        //     links[2].energy > 0 &&99        //     links[0].energy > 0) {100        //     mem.joblistPickup.push(links[0].id)101        // }*/*/102        var storage = room.storage103        if (typeof storage !== 'undefined') {104            if (storage.length > 0) {105                mem.joblistPickup.push(storage.id)106            }107        }108        // List of upkeep jobs -----------------------------------------------109        // Add new jobs110        // Find all ramps111        var jobRamps = room.find(FIND_MY_STRUCTURES, {112            filter: (structure) => {113                return (structure.structureType == 'rampart' &&114                structure.hits < defense)}});115        _.forEach(jobRamps, function(job) {116            if (!_.some(mem.joblistRepairRamps, job.id)) {117                mem.joblistRepairRamps.push(job.id)118            }119        })120        // Find all roads121        var jobRoads = room.find(FIND_STRUCTURES, {122            filter: (structure) => {123                return (structure.structureType == 'road' &&124                structure.hits < (structure.hitsMax - 1000))}});125        for (j in jobRoads){126            if (!_.some(mem.joblistRepairRoads, jobRoads[j].id)) {127                mem.joblistRepairRoads.push(jobRoads[j].id)128            }129        }130        // Find all containers131        var jobConts = room.find(FIND_STRUCTURES, {132            filter: (structure) => {133                return (structure.structureType == 'container' &&134                structure.hits < 200000)}});135        for (j in jobConts){136            if (!_.some(mem.joblistRepairContainers, jobConts[j].id)) {137                mem.joblistRepairContainers.push(jobConts[j].id)138            }139        }140        // Find all walls141        var jobsWalls = room.find(FIND_STRUCTURES, {142            filter: (structure) => {143                return (structure.structureType == 'constructedWall' &&144                structure.hits < defense)}});145        for (j in jobsWalls){146            if (!_.some(mem.joblistRepairWalls, jobsWalls[j].id)) {147                mem.joblistRepairWalls.push(jobsWalls[j].id)148            }149        }150        // Remove done jobs151        // Done ramps152        var joblist = mem.joblistRepairRamps;153        var jobRamps = room.find(FIND_MY_STRUCTURES, {154                filter: (structure) => {return155                (structure.structureType == 'rampart' &&156                (structure.hits > defense ||157                structure.hits == structure.hitsMax))}});158        _.forEach(jobRamps, function(job) {159            if (_.some(mem.joblistRepairRamps, job.id)) {160                joblist.splice(joblist.indexOf(job.id),1)161            }162        })163        // Done roads164        var joblist = mem.joblistRepairRamps;165        var jobRoads = room.find(FIND_STRUCTURES, {166            filter: (structure) => {167                return (structure.structureType == 'road' &&168                structure.hits >= (structure.hitsMax - 2000))}});169        for (j in jobRoads){170            if (_.some(joblist, jobRoads[j].id)) {171                joblist.splice(joblist.indexOf(jobRoads[j]),1)172            }173        }174        // Done conts175        var joblist = mem.joblistRepairContainers;176        var jobConts = room.find(FIND_STRUCTURES, {177            filter: (structure) => {178                return (structure.structureType == 'container' &&179                structure.hits >= (structure.hitsMax - 2000))}});180        for (j in jobConts){181            if (_.some(joblist, jobConts[j].id)) {182                joblist.splice(joblist.indexOf(jobConts[j]),1)183            }184        }185        // Done walls186        var joblist = mem.joblistRepairWalls;187        var jobsWalls = room.find(FIND_STRUCTURES, {188            filter: (structure) => {189                return (structure.structureType == 'constructedWall' &&190                structure.hits >= 5000)}});191        for (j in jobsWalls){192            if (_.some(joblist, jobsWalls[j].id)) {193                joblist.splice(joblist.indexOf(jobsWalls[j]),1)194            }195        }196        // Generate spawning list ==============================================197        // Creep population targets:198        var popTarget = {199            generalist: 0,200            worker: 0,201            carrier: 0,202            upgrader: 0,203            builder: 0,204            defender: 0,205            hauler: 0,206            miner: 0,207            warrior: 0,208            healer: 0209        };210        // Number of plain fields next to sources211        var slots = _.sum(mem.sources, function(source) {return source.plain});212        var nSources = Object.keys(mem.sources).length;213        // If low lvl room, use generalists214        if (room.energyCapacityAvailable <= 300) {215            popTarget['generalist'] = Math.min(216                Math.floor(slots * 1.5),217                nSources * 1); //5218        }219        else if (room.energyCapacityAvailable <= 400) {220            popTarget['generalist'] = Math.min(221                Math.floor(slots * 1.5),222                nSources * 1); //3223        }224        else if (room.energyCapacityAvailable <= 600) {225            popTarget['generalist'] = Math.min(226                Math.floor(slots * 1.5),227                nSources * 1); //2228        }229        else if (room.energyCapacityAvailable <= 800) {230            popTarget['generalist'] = Math.min(231                Math.floor(slots * 1.5),232                nSources * 1); //1.5233        }234        // Else, user worker carrier model235        else if (room.energyCapacityAvailable > 800) {236            popTarget['worker'] = nSources;237            popTarget['carrier'] = 2;238            popTarget['upgrader'] = 1;239            // If there is a construction site, there should be a builder240            if (sites.length) {241                popTarget['builder'] = 1;242            }243            // If there is an extractor, there should be a miner244            if (room.find(FIND_MY_STRUCTURES, {245                filter: { structureType: STRUCTURE_EXTRACTOR}}).length) {246                popTarget['miner'] = 1;247            }248        }249        // Census of actual creep population -----------------------------------250        // Get all creeps in this room251        var creeps = _.filter(Game.creeps, function(o) {252            return o.room.name == room.name;253        });254        // Get number of creeps per role255        var pop = _.countBy(creeps, 'memory.role');256        var joblistSpawn = [];257        for (role in popTarget) {258            // Fill in zero values259            if (typeof pop[role] === 'undefined') {260                pop[role] = 0;261            }262            // Compare actual to target263            if (pop[role] < popTarget[role]) {264                joblistSpawn.push(role);265            }266        }267        mem['joblistSpawn'] = joblistSpawn;268        // Restart room ========================================================269        if (pop['generalist'] < 4 &&270            pop['carrier'] === 0) {271            var spawns = room.find(FIND_MY_STRUCTURES, {filter: {structureType: STRUCTURE_SPAWN}});272            if (spawns.length) {273                var spawn = _.sortByOrder(spawns, 'energy', 'desc')[0];274                if (room.energyCapacityAvailable <= 800) {275                    spawn.spawnGeneralist(spawn.room.energyAvailable)276                }277                else if (room.energyCapacityAvailable > 800) {278                    // If storage is non-empty279                    if (typeof room.storage !== 'undefined' &&280                        room.storage.store[RESOURCE_ENERGY] > 1000) {281                        spawn.spawnCarrier(spawn.room.energyAvailable);282                    }283                    else {284                        spawn.spawnGeneralist(spawn.room.energyAvailable);285                    }286                }287            }288        }289    }290};...vueselect.js
Source:vueselect.js  
1Vue.component('vueselect',{2	template: `3<div class="ui-select">4  <div style="position:relative !important;" :class="{'popup':ispop}">5    <div class="ui-mini ui-btn ui-icon-carat-d ui-btn-icon-right ui-corner-all"6      @click="pop($event)" :class="{'ui-btn-active': isactive}" @mousedown="mousedown" @mouseup="mouseup" @mouseleave="mouseup">7      <a>{{ options[data.selected] }}</a>8    </div>9    <div v-show="options.length != 0 && ispop" class="overlayMask" :class="{'fullscreen':isFullScreen}" @click="!isFullScreen?hide():''"></div>10    <ul v-show="options.length != 0 && ispop" class="ui-selectmenu ui-selectmenu-list ui-listview ui-corner-all" style="position:absolute !important;overflow:auto;" :style="optionBoxPos">11      <div v-if="isFullScreen" class="ui-header ui-first-child">12        <div class="ui-btn ui-corner-all ui-icon-delete ui-btn-icon-notext ui-btn-left" @click="hide"></div>13        <div class="ui-title">{{ title() }}</div>14      </div>15      <li @click="select($event)" :value="key" :class="{'ui-first-child': key === 0 && !isFullScreen, 'ui-last-child': key === (options.length - 1)}" v-for="(item, key) in options" :key="key">16        <div class="ui-btn" :class="{'ui-btn-active':key === data.selected}">{{item}}</div>17      </li>18    </ul>19  </div>20</div>`,21  data () {22    return {23      oldoptions: [],24      ispop: false,25      isactive: false,26      poptarget: undefined,27      isFullScreen: false,28      optionBoxPos: {29        top: 0,30        left: 031      },32      poptargetPos: JSON.stringify({33        top: 0,34        left: 0,35        offsetHeight: 0,36        offsetWidth: 037      }),38      objPos: {39        width: 0,40        height: 041      }42    }43  },44  computed: {45    options () {46      return this.data.options47    }48  },49  props: {50    label: {51      type: String,52      default: () => {53        return ''54      }55    },56    data: {57      type: Object,58      default: () => {59        return {60          options: [' '],61          selected: 062        }63      },64      required: true65    }66  },67  methods: {68    newPoptargetPos () {69      return {70        top: common.getElementTop(this.poptarget),71        left: common.getElementLeft(this.poptarget),72        offsetHeight: this.poptarget.offsetHeight,73        offsetWidth: this.poptarget.offsetWidth74      }75    },76    title () {77      return this.label === '' ? ' ' : document.getElementById(this.label).innerText78    },79    pop (event) {80      if (this.options.length === 0) {81        return82      }83      this.ispop = true84      this.poptarget = event.currentTarget85    },86    hide () {87      this.ispop = false88    },89    mousedown () {90      this.isactive = true91    },92    mouseup () {93      this.isactive = false94    },95    select (event) {96      this.data.selected = event.currentTarget.value * 197      this.ispop = false98    },99    listSize (obj) {100      let objarr = Array.from(obj.children)101      if (objarr.length !== this.options.length) {102        objarr.shift()103      }104      return {105        width: obj.offsetWidth,106        height: objarr.reduce((accumulator, currentValue) => {107          return accumulator + currentValue.offsetHeight108        }, 0)109      }110    },111    relocate (obj) {112      let listSize = this.listSize(obj)113      let pageArea = common.getPagearea()114      if (JSON.stringify(this.objPos) !== JSON.stringify(listSize)) {115        if (this.objPos.width === 0 || this.objPos.width === pageArea.width - 32 || listSize.width !== pageArea.width - 32) {116          this.objPos = JSON.parse(JSON.stringify(listSize))117        }118      }119      let newPoptargetPos = this.newPoptargetPos()120      let top = (newPoptargetPos.offsetHeight - listSize.height) / 2121      let left = (newPoptargetPos.offsetWidth - this.objPos.width) / 2122      let right = 'auto'123      let bottom = 'auto'124      let position = 'absolute !important'125      let maxtop = pageArea.height - listSize.height - 16126      let maxleft = pageArea.width - this.objPos.width - 16127      top = (top + newPoptargetPos.top) <= 16 ? (16 - newPoptargetPos.top)128        : ((top + newPoptargetPos.top) > maxtop ? (maxtop - newPoptargetPos.top) : top)129      left = (left + newPoptargetPos.left) <= 16 ? (16 - newPoptargetPos.left)130        : ((left + newPoptargetPos.left) > maxleft ? (maxleft - newPoptargetPos.left) : left)131      if (left + this.objPos.width + newPoptargetPos.left >= pageArea.width - 32) {132        right = '16px'133      }134      if (top + listSize.height + newPoptargetPos.top >= pageArea.height - 32) {135        position = 'fixed !important'136        top = 16137        left = 16138        right = '16px'139        bottom = '16px'140        this.isFullScreen = true141      } else {142        this.isFullScreen = false143      }144      return {145        top: top + 'px',146        left: left + 'px',147        right: right,148        bottom: bottom,149        position: position150      }151    }152  },153  beforeUpdate () {154    if (this.oldoptions.toString() !== this.options.toString()) {155      if (this.data.selected > this.options.length - 1) {156        this.data.selected = 0157      }158    }159  },160  updated () {161    // this.poptargetä½ä¸ºå®ä½ç®æ ,夿optionsåç®æ ä½ç½®åçä¿®æ¹æéæ°å®ä½ï¼é¿å
åçæ»å¾ªç¯162    if (this.poptarget !== undefined &&163      (this.oldoptions.toString() !== this.options.toString() ||164        JSON.stringify(this.newPoptargetPos()) !== this.poptargetPos)) {165      let obj = this.poptarget.nextElementSibling.nextElementSibling166      if (obj.style.display === 'none') {167        return168      }169      this.oldoptions = this.options.slice()170      this.poptargetPos = JSON.stringify(this.newPoptargetPos())171      this.optionBoxPos = this.relocate(obj)172    }173  }...aim trainer.js
Source:aim trainer.js  
...23 24    // æ¾ç¤ºç®æ ï¼ç®æ å©ä½ï¼ä»¥åæ¶é´25    document.querySelector('.play-sets').style.display = 'flex'26    details.beginAt = new Date()27    popTarget(details.target)28}29function saveScore(){30    alert('saved to your account')31}32function popTarget(target,ev){33    target.style.display = 'none'34    if(ev){35       let screenW = ev.target.parentNode.parentNode.clientWidth36       let screenH = ev.target.parentNode.parentNode.clientHeight37    //    let tW = ev.target.clientWidth38    //    let tH = ev.target.clientHeight39        let tW = 10040        let tH = 10041        //ååtargetçä½ç½®42        let rleft = parseInt(Math.random() * screenW-tW)43        let rtop = parseInt(Math.random() * screenH-tH)44        if(rleft<0)rleft = 045        if(rtop<0)rtop = 046        target.style.left = rleft + 'px'47        target.style.top = rtop + 'px'48    }49    target.style.display = 'block'50}51function hitTarget(ev){52    let {currentScore,totalSum} = details53    details.currentScore++54    if(totalSum-currentScore<=1){55        playEnd()56    }else{57        details.remainCount.innerHTML = details.totalSum - details.currentScore58        popTarget(details.target,ev)59    }60}61function playEnd(){62    details.isPlaying = false63    details.endAt = new Date()64    document.querySelector('.play-sets').style.display = 'none'65    document.querySelector('.result').style.display = 'flex'66    document.querySelector('.avarage-time').innerHTML = parseInt((details.endAt - details.beginAt) / details.totalSum) +"ms"67}68function drawTarget(canvas,flag){69    const ctx = canvas.getContext('2d')70   71    ctx.save()72    ...main.js
Source:main.js  
1import $ from 'jquery';2(function($) {3if (typeof window === 'undefined') return;4var popTarget;5$.fn.instancitePopup  = function(){6   7    $(document).on('click', '.pop-up__btn', function (e) {8        e.preventDefault();9        if ($(this).is('[data-href]')) {10            popTarget = $(this).data("href");11        } else {12            popTarget = $(this).attr("href");13        }14        $(popTarget).wrap("<span class='pop-up__placeholder'></span>")15        $(popTarget).prependTo(".pop-up__content");16        $(".pop-up__content > *").addClass("popWrap");17        $(".pop-up").fadeIn();18        $("body").addClass("popOpen");19        $(".close").click(function() {20            closePopup();21        });22    });23    $(document).keydown(function (e) {24        if (e.keyCode === 27) {25            closePopup();26        }27    });28    $('body').on('click touchstart', function (e) {29        if ($(".pop-up").is(":visible")) {30            if ($(e.target).closest(".popWrap").length === 0) {31            closePopup();32            }33        }34    });35};36function closePopup() {37    if ($(".pop-up").is(":visible")) {38        $(".pop-up").fadeOut(function () {39            $("body").removeClass("popOpen");40            $(".pop-up__content > *").removeClass("popWrap");41            $(popTarget).appendTo(".pop-up__placeholder");42            // $(popTarget).unwrap();43            $(".pop-up__content").html("");44        });45    }46}47$.fn.instancitePopup();...pop.js
Source:pop.js  
1var popOpen = null;2var popClose = null;3var popTarget = null;4$(document).ready(function(){5    init();6    popupControl(popOpen,popClose,popTarget);7    // ! popOpen => callPopupì click íì ë popupëìì´ë¦ì ë¶ë¬ìì ë³ìì ë´ì.8    // ! ê·¸ ëìì´ ê³§ = popup ë³ìê° ë¨.9});10function init(){11    popOpen = $('.callPopup');12    popClose = $('.pop_close');13    popTarget = $('.popup');14}15function popupControl(popOpen,popClose,popTarget){16    $(popOpen).click(function(){17        var activePopName =  $(this).attr('data-popName');18        $("#" + activePopName).addClass('active');19        $(popTarget).css({20            "top": (($(window).height()-$(popTarget).outerHeight())/2+$(window).scrollTop())+"px"21        });22        $("body").css("overflow","hidden");23    });24    $(popClose).click(function(){25        $(popTarget).removeClass('active');26        $("body").css("overflow","auto");27    });...index.js
Source:index.js  
1$(document).ready(function(){2    var popTarget = $(".popup");3    var popClose = $(".pop_close");4    popup($(".callPopup"),popTarget,popClose);5    toggle();6    $('.slider').bxSlider({7        speed: 750,8        infiniteLoop: true,9        touchEnabled: false,10        pager: true11    });12});13function toggle(){14    var $activeTarget = $('header > div > div');15    $('header > div > nav > button').click(function(){16        $activeTarget.toggleClass('active');17    });18}19function popup(popOpen,popTarget,popClose){20    popOpen.click(function(){21        popTarget.addClass("activate");22    });23    popClose.click(function(){24        popTarget.removeClass("activate");25    });...popup.js
Source:popup.js  
1function cleanPopup(){2  $('.popup').removeClass('popactive');3}4function openPopup(poptarget){5  console.log('hoa');6  cleanPopup();7  $(poptarget).addClass('popactive').fadeIn();8}9function closePopup(poptarget){10  $('.popactive').fadeOut();11  cleanPopup();12}13$('.popup_opener').on('click', function(){14  var poptarget = '#' + $(this).attr('poptarget');15  openPopup(poptarget);16})17$('.popup_close').on('click', function(){18  closePopup();...Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/browserContext');2const { chromium } = require('playwright');3(async () => {4  const browser = await chromium.launch();5  const context = await browser.newContext();6  const page = await context.newPage();7  const target = await page.target();8  await popTarget(context, target);9  await browser.close();10})();Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');2popTarget();3const { pushTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');4pushTarget();5const { getTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');6getTarget();7const { getAction } = require('playwright/lib/server/supplements/recorder/recorderSupplement');8getAction();9const { setAction } = require('playwright/lib/server/supplements/recorder/recorderSupplement');10setAction();11const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement');12setTarget();13const { setSelector } = require('playwright/lib/server/supplements/recorder/recorderSupplement');14setSelector();15const { getSelector } = require('playwright/lib/server/supplements/recorder/recorderSupplement');16getSelector();17const { setActionOptions } = require('playwright/lib/server/supplements/recorder/recorderSupplement');18setActionOptions();19const { getActionOptions } = require('playwright/lib/server/supplements/recorder/recorderSupplement');20getActionOptions();21const { setActionText } = require('playwright/lib/server/supplements/recorder/recorderSupplement');22setActionText();23const { getActionText } = require('playwright/lib/server/supplements/recorder/recorderSupplement');24getActionText();25const { setActionURL } = require('playwright/lib/server/supplements/recorder/recorderSupplement');26setActionURL();Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');2popTarget();3const { pushTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');4pushTarget();5const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');6setTarget();7const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');8setTarget();9const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');10setTarget();11const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');12setTarget();13const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');14setTarget();15const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');16setTarget();17const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');18setTarget();19const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');20setTarget();21const { setTarget } = require('playwright/lib/server/supplements/recorder/recorderSupplement.js');22setTarget();23const {Using AI Code Generation
1const { popTarget } = require('@playwright/test/lib/server/frames');2const { test, expect } = require('@playwright/test');3test('test', async ({ page }) => {4  await page.click('text="Docs"');5  await page.click('text="API"');6  await page.click('text="Page"');7  await page.click('text="page.$"');8  popTarget();9  await page.click('text="page.$eval"');10  await page.click('text="page.$$"');11  await page.click('text="page.$$eval"');12  await page.click('text="page.$x"');13  await page.click('text="page.$eval"');14  await page.click('text="page.$"');15  await page.click('text="page.$eval"');16  await page.click('text="page.$$eval"');17  await page.click('text="page.$x"');18  await page.click('text="page.$eval"');19  await page.click('text="page.$"');20  await page.click('text="page.$eval"');21  await page.click('text="page.$$eval"');22  await page.click('text="page.$x"');23  await page.click('text="page.$eval"');24  await page.click('text="page.$"');25  await page.click('text="page.$eval"');26  await page.click('text="page.$$eval"');27  await page.click('text="page.$x"');28  await page.click('text="page.$eval"');29  await page.click('text="page.$"');30  await page.click('text="page.$eval"');31  await page.click('text="page.$$eval"');32  await page.click('text="page.$x"');33  await page.click('text="page.$eval"');34  await page.click('text="page.$"');35  await page.click('text="page.$eval"');36  await page.click('text="page.$$eval"');37  await page.click('text="page.$x"');38  await page.click('text="page.$eval"');39  await page.click('text="page.$"');40  await page.click('text="page.$eval"');Using AI Code Generation
1const { popTarget } = require('@playwright/test/lib/server/frames');2const { popTarget } = require('@playwright/test/lib/server/frames');3const { popTarget } = require('@playwright/test/lib/server/frames');4const { popTarget } = require('@playwright/test/lib/server/frames');5const { popTarget } = require('@playwright/test/lib/server/frames');6const { popTarget } = require('@playwright/test/lib/server/frames');7const { popTarget } = require('@playwright/test/lib/server/frames');8const { popTarget } = require('@playwright/test/lib/server/frames');Using AI Code Generation
1const { popTarget } = require('playwright/lib/server/browserContext');2const target = popTarget();3const page = await target.page();4const browser = await target.browserContext().browser();5const context = await target.browserContext();6const { popTarget } = require('playwright/lib/server/browserContext');7const target = popTarget();8const page = await target.page();9const browser = await target.browserContext().browser();10const context = await target.browserContext();11const { popTarget } = require('playwright/lib/server/browserContext');12const target = popTarget();13const page = await target.page();14const browser = await target.browserContext().browser();15const context = await target.browserContext();16const { popTarget } = require('playwright/lib/server/browserContext');17const target = popTarget();18const page = await target.page();19const browser = await target.browserContext().browser();20const context = await target.browserContext();21const { popTarget } = require('playwright/lib/server/browserContext');22const target = popTarget();Using AI Code Generation
1const { popTarget, currentTarget } = require('playwright/lib/internal/frames');2popTarget();3console.log(currentTarget());4const { popTarget, currentTarget } = require('playwright/lib/internal/frames');5test('test', async ({ page }) => {6  await page.evaluate(() => {7    popTarget();8    console.log(currentTarget());9  });10});LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!
