Best JavaScript code snippet using tracetest
jquery.listPage.js
Source:jquery.listPage.js
1/// <reference path="../jquery-1.7.2.min.js" />2/**3* æ°æ®å表æ件ï¼å¸¦å页ï¼4* Copyright 2015, The Guo MengWen version 1.0.05* Date:2015-06-15 10:15:006* è¿åæ°æ®æ ¼å¼å¦ä¸ï¼7* {8 code:19 msg:"æå",10 recordCount:0,11 resultData:[12 {13 id:1,14 title:"æ¼ç¤º1"15 },16 {17 id:2,18 title:"æ¼ç¤º2"19 }20 ]21 }22*/23var js = document.scripts;24var src = js[js.length - 1].src;25var getCurrentJsPath = src.substring(0, src.lastIndexOf("/") + 1);26(function ($) {27 /*åå§åæ°æ®å表*/28 $.fn.listPage = function (options) {29 var self = this;30 var $listPageHtml = "";31 var paging = {};32 self.checkValue = "";33 self.checkPage = "";34 self.defaults = $.extend({35 skin: "gray", /****************æ ·å¼ä¸»é¢ é»è®¤default */36 url: getCurrentJsPath + "testjson.js", /****************æ°æ®æ¥æº 请æ±å°å ,æµè¯æ°æ®åªæ¯æ¨¡æå页 è¿åjsonæ ¼å¼æ°æ®ï¼æ ¼å¼å¦testjson.js */37 type: "post", /****************请æ±æ¹å¼ get/post 请æ±æ¹å¼ï¼é»è®¤get */38 autoCss: true, /****************æ¯å¦èªå¨æ·»å æ ·å¼æ件 */39 isPager: true, /****************æ¯å¦å¯ç¨å页模å¼ï¼é»è®¤å¯ç¨ */40 showCheck: false, /****************æ¯å¦æ¾ç¤ºå¤éæ¡,å¼å¯åï¼å¿
须设置keyå¼ */41 doubleLine: true, /****************æ¯å¦æ¾ç¤ºåè¡é¢è²*/42 pageIndex: 1, /****************页ç */43 pageSize: 10, /****************æ¯é¡µæ°æ®*/44 recordCount: 0, /****************æ°æ®æ»è®°å½*/45 pageDetail: true, /****************页ç 详æ
*/46 showNumber: false, /****************æ¯å¦æ¾ç¤ºé¡µç */47 data: null, /****************请æ±åæ°*/48 init: function () { }, /****************å¼å§å è½½æ°æ®æ¶æ§è¡***/49 completed: function () { }, /****************æ°æ®å è½½æååæ§è¡*/50 error: function () { }, /****************æ°æ®å 载失败åæ§è¡ */51 key: "", /****************ä¸è¬ä¸ºä¸»é®ï¼ç¨äºç»å®checkbox/radio valueå¼*/52 row: {53 title: ['ç¼å·', 'æ é¢', "å
容", 'æ¶é´', 'æä½'],54 column: [55 { type: "data", text: "id", style: "", format: function (item) { return item[this.text]; } },56 { type: "data", text: "title", style: "", format: function (item) { return item[this.text]; } },57 { type: "click", style: "", items: [{ type: "data", text: "content", format: function (item) { return item[this.text]; }, event: function (item) { } }] },58 { type: "data", text: "createtime", style: "", format: function (item) { return item[this.text]; } },59 {60 type: "click", style: "", items: [61 { type: "text", text: "ç¼è¾", format: function (item) { return this.text; }, event: function (item) { } },62 { type: "text", text: "å é¤", format: function (item) { return this.text; }, event: function (item) { } }63 ]64 }65 ]66 }, /****************title:å表åæ é¢æ°ç» column:å表è¡æ°æ®æ°ç»---å表æ°æ®å±æ§æ°ç», å¿
é¡»åurlè¿åçæ°æ®ååä¸è´ ,type=text/click/data ï¼type=textæ¶ï¼ç´æ¥æ¾ç¤ºè®¾ç½®çtextçå¼,type=dataæ¶ï¼æ¾ç¤ºæ°æ®æºä¸textå段å¼ï¼type=clickæ¶ï¼å¯ç¹å»*/67 }, options);68 if (self.defaults.autoCss) {69 var link = "<link href=\"" + getCurrentJsPath + "theme/" + self.defaults.skin + "/skin.css\" rel=\"stylesheet\" type=\"text/css\" />";70 $("head").append(link);71 }72 $(self).hide();73 var $tempHtmlPath = "" + getCurrentJsPath + "theme/" + self.defaults.skin + "/skin.html";74 var setPaging = function (setting) {75 paging = {76 pageIndex: setting.pageIndex,77 pageSize: setting.pageSize78 }79 }80 /*å页代ç */81 var __loadPaging = function ($this) {82 $listPageHtml = $this;83 var currentSelector = $this.get(0).id;84 var totalCount = $this.defaults.recordCount;85 var pageCount = totalCount % $this.defaults.pageSize == 0 ? parseInt(totalCount / $this.defaults.pageSize) : parseInt(totalCount / $this.defaults.pageSize + 1);86 if ($this.defaults.pageIndex <= 1) $this.defaults.pageIndex = 1;87 if ($this.defaults.pageIndex >= pageCount) $this.defaults.pageIndex = pageCount;88 if ($this.defaults.pageDetail) {89 var numbers_text = "å
±" + totalCount + "æ¡è®°å½ï¼å½å" + $this.defaults.pageIndex + "/" + pageCount + "页ï¼æ¯é¡µ" + $this.defaults.pageSize + "æ¡è®°å½";90 $listPageHtml.find(".paging_full_numbers_text").html(numbers_text).show();91 }92 if ($this.defaults.pageIndex == 1 && pageCount == 1) {93 $listPageHtml.find(".paging_full_numbers").html('');94 return;95 }96 var _pagingHtml = '';97 if ($this.defaults.pageIndex > 1)98 _pagingHtml += '<span class="first paginate_button button-white" id="page_1' + currentSelector + '" data-pageindex="1" ><span>é¦é¡µ</span></span><span id="page_' + ($this.defaults.pageIndex - 1) + currentSelector + '" class="previous paginate_button button-white" data-pageindex="' + ($this.defaults.pageIndex - 1) + '" ><span>ä¸ä¸é¡µ </span></span>';99 else100 _pagingHtml += '<span class="first paginate_button paginate_button_disabled button-white button-white_disabled"><span>é¦é¡µ</span></span><span class="previous paginate_button paginate_button_disabled button-white button-white_disabled"><span>ä¸ä¸é¡µ</span> </span>';101 if ($this.defaults.showNumber) {102 var number = '<span>';103 for (m = $this.defaults.pageIndex - 4; m <= $this.defaults.pageIndex + 4; m++) {104 if (m > 0 && m <= pageCount) {105 number += '<span id="page_' + m + currentSelector + '" ' + ($this.defaults.pageIndex == m ? ' class="paginate_active button-white button-white_disabled"' : 'class="paginate_button button-white"') + ' data-pageindex="' + m + '" ><span>' + m + '</span></span>';106 }107 }108 number += "</span>";109 _pagingHtml += number;110 }111 if ($this.defaults.pageIndex < pageCount)112 _pagingHtml += '<span id="page_' + ($this.defaults.pageIndex + 1) + currentSelector + '" class="next paginate_button button-white" data-pageindex="' + ($this.defaults.pageIndex + 1) + '" ><span>ä¸ä¸é¡µ</span></span><span id="page_' + pageCount + currentSelector + '" class="last paginate_button button-white" data-pageindex="' + pageCount + '" ><span>æåä¸é¡µ</span></span>';113 else114 _pagingHtml += '<span class="next paginate_button paginate_button_disabled button-white button-white_disabled"><span>ä¸ä¸é¡µ</span></span><span class="last paginate_button paginate_button_disabled button-white button-white_disabled"><span>æåä¸é¡µ</span></span>';115 $listPageHtml.find(".paging_full_numbers").html(_pagingHtml);116 /****ç»å®äºä»¶****/117 if ($this.defaults.pageIndex > 1) {118 $listPageHtml.find(".paging_full_numbers").find("#page_1" + currentSelector).unbind("click").bind("click", function () {119 __checkValue($this);120 $this.defaults.pageIndex = parseInt($(this).attr("data-pageindex"));121 __getDataList($this);122 $(this).unbind("click");123 });124 $listPageHtml.find(".paging_full_numbers").find("#page_" + ($this.defaults.pageIndex - 1) + currentSelector).unbind("click").bind("click", function () {125 __checkValue($this);126 $this.defaults.pageIndex = parseInt($(this).attr("data-pageindex"));127 __getDataList($this);128 $(this).unbind("click");129 });130 }131 for (m = $this.defaults.pageIndex - 4; m <= $this.defaults.pageIndex + 4; m++) {132 if (m > 0 && m <= pageCount) {133 $listPageHtml.find(".paging_full_numbers").find("#page_" + m + currentSelector).unbind("click").bind("click", function () {134 __checkValue($this);135 $this.defaults.pageIndex = parseInt($(this).attr("data-pageindex"));136 __getDataList($this);137 $(this).unbind("click");138 });139 }140 }141 if ($this.defaults.pageIndex < pageCount) {142 $listPageHtml.find(".paging_full_numbers").find("#page_" + ($this.defaults.pageIndex + 1) + currentSelector).unbind("click").bind("click", function () {143 __checkValue($this);144 $this.defaults.pageIndex = parseInt($(this).attr("data-pageindex"));145 __getDataList($this);146 $(this).unbind("click");147 });148 $listPageHtml.find(".paging_full_numbers").find("#page_" + pageCount + currentSelector).unbind("click").bind("click", function () {149 __checkValue($this);150 $this.defaults.pageIndex = parseInt($(this).attr("data-pageindex"));151 __getDataList($this);152 $(this).unbind("click");153 });154 }155 }156 /*è·åæ°æ®*/157 var __getDataList = function ($this) {158 $listPageHtml = $this;159 if (typeof $this.defaults.init == 'function')160 $this.defaults.init();161 /*å¤ææ¯å¦å¼å¯å页åè½*/162 if ($this.defaults.isPager) {163 /*设置å½åå页æ°æ®*/164 setPaging($this.defaults);165 $this.defaults.data = $.extend($this.defaults.data, paging);166 }167 $.ajax({168 type: $this.defaults.type,169 url: $this.defaults.url,170 data: $this.defaults.data,171 dataType: "json",172 success: function (json) {173 /*è·åå½åå
ç´ id*/174 var currentSelector = $this.get(0).id;175 if (json.code == 1) {176 var $bodyHtmlList = "";177 var $bodyHtml = $listPageHtml.find(".listTr");178 var $bodyTdHtml = $listPageHtml.find(".listTd");179 var $bodyCheckBox = $listPageHtml.find(".bodyCheckBox");180 var ids = []181 var itemidx = 0;182 if (typeof $this.defaults.row.column != 'undefined' && $this.defaults.row.column.length > 0) {183 if (typeof json.resultData != 'undefined' && json.resultData.length > 0) {184 $.each(json.resultData, function (i, item) {185 var _bodyHtml = $bodyHtml.html();186 var _tdHtmlList = '';187 if ($this.defaults.showCheck) {188 var _box = $bodyCheckBox.html();189 if (typeof _box != 'undefined' && _box != null && $this.defaults.key.length > 0) {190 _box = _box.replace(/{selector}/gm, currentSelector);191 _tdHtmlList += _box.replace(/{key}/gm, item[$this.defaults.key]);192 }193 }194 $.each($this.defaults.row.column, function (idx, r) {195 var _html = $bodyTdHtml.html();196 /*è®¾ç½®æ ·å¼*/197 if (typeof r.style != 'undefined' && r.style.length > 0)198 _html = _html.replace(/{css}/gm, r.style);199 else200 _html = _html.replace(/{css}/gm, "");201 switch (r.type) {202 case "text": /*ææ¬ç±»å*/203 _tdHtmlList += _html.replace(/{tbody}/gm, r.text);204 return;205 case "data": /*ç»å®ç±»å*/206 var _value = "";207 if (typeof r.format == 'function')208 _value = r.format(item);209 else {210 _value = typeof item[r.text] == 'undefined' ? "--" : item[r.text];211 }212 _tdHtmlList += _html.replace(/{tbody}/gm, _value);213 return;214 case "click": /*ç¹å»äºä»¶ç±»å*/215 {216 var _hrefHtml = "";217 $.each(r.items, function (o, v) {218 if (v.type == "data") {219 var _value = "";220 if (typeof v.format == 'function')221 _value = v.format(item);222 else223 _value = typeof item[v.text] == 'undefined' ? "--" : item[v.text];224 _hrefHtml += '<span class="spanEvent_' + currentSelector + "_" + itemidx + '" data-idx="' + itemidx + '">' + _value + '</span> ';225 }226 else if (v.type == "text") {227 _hrefHtml += '<span class="spanEvent_' + currentSelector + "_" + itemidx + '" data-idx="' + itemidx + '">' + v.text + '</span> ';228 }229 var dataItems = {230 idx: ".spanEvent_" + currentSelector + "_" + itemidx,231 item: item,232 click: v.event233 };234 ids.push(dataItems);235 ++itemidx;236 });237 _tdHtmlList += _html.replace(/{tbody}/gm, _hrefHtml);238 return;239 }240 default: {241 _tdHtmlList += _html.replace(/{tbody}/gm, "");242 console.log("is not find type");243 }244 }245 });246 if ($this.defaults.doubleLine)247 _bodyHtml = _bodyHtml.replace(/{clsName}/gm, (i + 1) % 2 == 0 ? 'over' : 'odd');248 else249 _bodyHtml = _bodyHtml.replace(/{clsName}/gm, 'odd');250 $bodyHtmlList += _bodyHtml.replace(/{tbodyHtml}/gm, _tdHtmlList);251 });252 }253 }254 $listPageHtml.find(".listBody").html($bodyHtmlList).show();255 if (ids.length > 0) {256 for (var i = 0; i < ids.length; i++) {257 /*ç»å®äºä»¶*/258 $listPageHtml.find(".listBody").find(ids[i].idx).bind("click", function () {259 var idx = parseInt($(this).attr("data-idx"));260 ids[idx].click(ids[idx].item);261 });262 }263 }264 if ($this.defaults.showCheck) {265 /*éæ©checkboxæ¶è§¦åäºä»¶*/266 $("input[name='chb_" + currentSelector + "']").bind("change", function () {267 __checkValue($this);268 });269 }270 $this.defaults.recordCount = json.recordCount;271 if ($this.defaults.isPager)272 __loadPaging($this);273 if ($this.defaults.showCheck)274 __setChecked($this);275 }276 else277 $listPageHtml.find(".paging_full_numbers").hide();278 if (typeof $this.defaults.completed == 'function')279 $this.defaults.completed(json);280 },281 error: function (e) {282 if (typeof $this.defaults.error == 'function')283 $this.defaults.error(e);284 }285 });286 }287 /*åå§å模ç*/288 var __init = function () {289 $.get($tempHtmlPath, {}, function (html) {290 var $headHtml = '', $headHtmlList = "";291 $listPageHtml = $(self).html(html);292 $headHtml = $listPageHtml.find(".listHead");293 var currentSelector = self.get(0).id;294 if (typeof self.defaults.row.title != 'undefined' && self.defaults.row.title.length > 0) {295 if (self.defaults.showCheck) {296 var _box = $listPageHtml.find(".headCheckBox").html();297 if (typeof _box != 'undefined' && _box != null && self.defaults.key.length > 0)298 $headHtmlList += _box.replace(/{selector}/gm, currentSelector);299 else300 console.log("key is not empty");301 }302 $.each(self.defaults.row.title, function (i, item) {303 var _html = $headHtml.html();304 $headHtmlList += _html.replace(/{thead}/gm, item);305 });306 }307 $listPageHtml.find(".listHead").html($headHtmlList);308 $listPageHtml.find(".listBody").hide();309 if (!self.defaults.isPager)310 $listPageHtml.find(".paging_full_numbers").hide();311 else312 $listPageHtml.find(".paging_full_numbers").show();313 $(self).show();314 if (self.defaults.showCheck) {315 /*å
¨é¨éæ©è§¦åäºä»¶*/316 $("input[name='chbAll_" + currentSelector + "']").bind("change", function () {317 if ($(this).attr("checked")) {318 $("input[name='chb_" + currentSelector + "']").attr("checked", "checked");319 }320 else {321 $("input[name='chb_" + currentSelector + "']").removeAttr("checked");322 }323 __checkValue(self);324 });325 }326 __getDataList(self);327 });328 }329 /*移é¤æå®æ°ç»å¼*/330 Array.prototype.remove = function (value) {331 var dx = __getArrayIndex(this, value);332 if (isNaN(dx) || dx > this.length) { return false; }333 for (var i = 0, n = 0; i < this.length; i++) {334 if (this[i] != this[dx]) {335 this[n++] = this[i]336 }337 }338 this.length -= 1;339 }340 /*æ ¹æ®æ°ç»æå®å
容è·å对åºçç´¢å¼*/341 var __getArrayIndex = function (arrs, value) {342 var index = -1;343 for (var i = 0; i < arrs.length; i++) {344 if (arrs[i] == value) {345 index = i;346 break;347 }348 }349 return index;350 }351 /*è·åéä¸çæ°æ®*/352 var __checkValue = function ($this) {353 var currentSelector = $this.get(0).id;354 var _arr = [];355 if (typeof $this.checkPage != 'undefined')356 _arr = $this.checkPage.split("|");357 else358 _currPage = "";359 if (typeof $this.checkValue == 'undefined')360 $this.checkValue = "";361 if ($.inArray($this.defaults.pageIndex.toString(), _arr) == -1) {362 var chbVal = "";363 $("input[name='chb_" + currentSelector + "']").each(function (v, item) {364 if ($(this).attr("checked")) {365 if (typeof $this.checkValue != 'undefined') {366 var _currV = $this.checkValue.split("|");367 if ($.inArray($(this).val(), _currV) == -1) {368 chbVal += $(this).val() + "|";369 }370 }371 else372 chbVal += $(this).val() + "|";373 }374 else375 $this.checkValue = $this.checkValue.replace("|" + $(this).val() + "|", "|");376 });377 $this.checkValue += chbVal;378 if (chbVal.length > 0) {379 $this.checkPage += $this.defaults.pageIndex + "|";380 }381 }382 else {383 $this.checkValue = "|" + $this.checkValue;384 $("input[name='chb_" + currentSelector + "']").each(function (v, item) {385 if (!$(this).attr("checked")) {386 $this.checkValue = $this.checkValue.replace("|" + $(this).val() + "|", "|");387 }388 else {389 if (typeof $this.checkValue != 'undefined') {390 var _currV = $this.checkValue.split("|");391 if ($.inArray($(this).val(), _currV) == -1) {392 $this.checkValue += $(this).val() + "|";393 }394 }395 }396 });397 $this.checkValue = $this.checkValue.substr(1);398 }399 return $this.checkValue;400 }401 /*ç»å½å页checkbox设置é»è®¤å¼*/402 var __setChecked = function ($this) {403 var currentSelector = $this.get(0).id;404 var _arr = [];405 if (typeof $this.checkValue != 'undefined')406 _arr = $this.checkValue.split("|");407 else408 $this.checkValue = "";409 if ($this.checkValue.length <= 0) {410 $("input[name='chbAll_" + currentSelector + "']").removeAttr("checked");411 return false;412 }413 else414 $("input[name='chbAll_" + currentSelector + "']").attr("checked", "checked");415 if (_arr.length > 0) {416 $("input[name='chb_" + currentSelector + "']").each(function (v, item) {417 if ($.inArray($(this).val(), _arr) != -1) {418 $(this).attr("checked", "checked");419 }420 else {421 $(this).removeAttr("checked");422 $("input[name='chbAll_" + currentSelector + "']").removeAttr("checked");423 }424 });425 }426 else {427 $("input[name='chbAll_" + currentSelector + "']").removeAttr("checked");428 }429 return true;430 }431 /*å·æ°å表æ°æ®*/432 self.reload = function () {433 __getDataList(this);434 }435 /*æç´¢æ°æ®*/436 self.search = function (data) {437 ///<summary>438 ///æç´¢äºä»¶439 ///</summary>440 ///<param name="data" type="Object">èªå®ä¹æç´¢åæ°å¯¹è±¡</param>441 this.checkValue = "";442 this.checkPage = "";443 __setChecked(this);444 if (typeof data != 'undefined' && typeof data === "object")445 this.defaults.data = $.extend(this.defaults.data, data);446 this.defaults.pageIndex = 1;447 __getDataList(this);448 }449 /*è·åcheckboxéä¸çå¼*/450 self.getCheckValue = function () {451 return __checkValue(this);452 }453 /*è·åå½å对象æ°æ®*/454 self.getCurrentObject = function () {455 return this.defaults;456 }457 __init();458 return self;459 }...
addHighlight.js
Source:addHighlight.js
1export default (configs) => `2function() {3 var selectors = {};4 function parseSelector(selector, parent) {5 return selector.split("|")[0].split("@")[0];6 }7 function getSchemaSelector(schema, selector = "", _key = "", config = "") {8 if (!selectors[config]) {9 selectors[config] = {};10 }11 Object.keys(schema || {}).forEach((key) => {12 var current = schema[key];13 var currentKey = _key ? _key + "." + key : key;14 if (typeof current === "string") {15 var _selector = parseSelector(current, selector);16 selectors[config][currentKey] = {17 selector: _selector,18 rawSelector: parseSelector(current),19 config: config,20 parent: selector,21 };22 } else if (typeof current === "object" && current.schema) {23 var currentSelector = current.selector24 ? parseSelector(current.selector, selector)25 : parseSelector(selector);26 27 getSchemaSelector(current.schema, currentSelector, currentKey, config);28 } else if (typeof current === "object" && current.selector) {29 selectors[config][currentKey] = {30 selector: parseSelector(current.selector, selector),31 rawSelector: parseSelector(current.selector),32 config: config,33 parent: selector,34 };35 }36 });37 }38 var configs = ${JSON.stringify(configs)};39 if (configs) {40 Object.keys(configs).forEach((key) => {41 getSchemaSelector(42 configs[key].schema,43 configs[key].parent,44 "",45 key46 );47 });48 }49 Object.keys(selectors).forEach((config) => {50 Object.keys(selectors[config]).forEach((key) => {51 var currentSelector = selectors[config][key];52 53 if (currentSelector.parent) {54 document.querySelectorAll(currentSelector.parent).forEach((el) => {55 el.classList.add("muninn_highlight_parent");56 if (currentSelector.selector) {57 el.querySelectorAll(currentSelector.selector).forEach((el) => {58 el.classList.add("muninn_highlight");59 el.dataset.muninnSelector = currentSelector.selector;60 el.dataset.muninnParent = currentSelector.parent;61 el.dataset.muninnConfig = currentSelector.config;62 el.dataset.muninnRawSelector = currentSelector.rawSelector;63 el.dataset.muninnName = key;64 });65 }66 });67 } else {68 if (currentSelector.selector) {69 document.querySelectorAll(currentSelector.selector).forEach((el) => {70 el.classList.add("muninn_highlight");71 el.dataset.muninnSelector = currentSelector.selector;72 el.dataset.muninnParent = currentSelector.parent;73 el.dataset.muninnConfig = currentSelector.config;74 el.dataset.muninnRawSelector = currentSelector.rawSelector;75 el.dataset.muninnName = key;76 });77 }78 }79 });80 });81 82 var tooltip = document.querySelector(".muninn-tooltip");83 var tooltipConfig = document.querySelector(".muninn-tooltip-config");84 var tooltipName = document.querySelector(".muninn-tooltip-name");85 var tooltipParent = document.querySelector(".muninn-tooltip-parent");86 var tooltipSelector = document.querySelector(".muninn-tooltip-selector");87 88 document.querySelectorAll(".muninn_highlight").forEach((el) => {89 el.addEventListener("mouseover", (e) => {90 if (!e.target.dataset.muninnName) {91 return;92 }93 e.stopPropagation();94 e.target.classList.add("muninn_active");95 tooltip.style.opacity = 1;96 tooltip.style.top = e.pageY + "px";97 tooltip.style.left = e.pageX + "px";98 tooltipConfig.innerHTML =99 "<b>Config:</b><span>" + e.target.dataset.muninnConfig + "</span>";100 tooltipName.innerHTML =101 "<b>Name:</b><span>" + e.target.dataset.muninnName + "</span>";102 tooltipParent.innerHTML =103 "<b>Parent:</b><span>" + e.target.dataset.muninnParent + "</span>";104 tooltipSelector.innerHTML =105 "<b>Selector:</b>" +106 e.target.dataset.muninnRawSelector107 .split(", ")108 .map((selector) => "<span>" + selector + "</span>")109 .join(" ");110 });111 112 el.addEventListener("mouseout", (e) => {113 e.stopPropagation();114 e.target.classList.remove("muninn_active");115 tooltip.style.opacity = 0;116 });117 });118 var muninnConfigScriptEl = document.querySelector('#muninn-config-script');119 if (muninnConfigScriptEl) {120 muninnConfigScriptEl.remove();121 }122 var schemaScript = document.createElement('script');123 schemaScript.id = 'muninn-config-script';124 document.body.appendChild(schemaScript);125 schemaScript.innerText = 'window.selectors = ' + JSON.stringify(selectors);126}...
room-collection-tracker.js
Source:room-collection-tracker.js
1'use strict';2var appEvents = require('../utils/appevents');3var urlParser = require('../utils/url-parser');4function RoomCollectionTracker(collection) {5 this.collection = collection;6 this.current = null;7 this.currentSelector = null;8 appEvents.on('context.troupeId', this.onContextChange, this);9 appEvents.on('navigation', this.onNavigate, this);10 collection.on('add', this.onAdd, this);11 collection.on('reset', this.onReset, this);12 var parsed = urlParser.parse(window.location.href);13 this.setSelectedRoom({ url: parsed.pathname });14}15RoomCollectionTracker.prototype = {16 setSelectedRoom: function(selector) {17 var selectedRoomModel = selector.url18 ? this.collection.findWhere({ url: selector.url })19 : this.collection.get(selector.id);20 if (selectedRoomModel && this.current === selectedRoomModel) return;21 if (this.current) {22 this.current.set('currentRoom', false);23 }24 this.current = selectedRoomModel;25 this.currentSelector = selector;26 if (selectedRoomModel) {27 selectedRoomModel.set('currentRoom', true);28 }29 },30 onAdd: function(model) {31 if (!this.currentSelector) return;32 if (33 (this.currentSelector.url && model.get('url') === this.currentSelector.url) ||34 (this.currentSelector.id && model.id === this.currentSelector.id)35 ) {36 this.current = model;37 model.set('currentRoom', true);38 }39 },40 onReset: function() {41 if (!this.currentSelector) return;42 this.setSelectedRoom(this.currentSelector);43 },44 onNavigate: function(url) {45 var parsed = urlParser.parse(url);46 this.setSelectedRoom({ url: parsed.pathname });47 },48 onContextChange: function(roomId) {49 this.setSelectedRoom({ id: roomId });50 }51};...
Using AI Code Generation
1var tracetest = require('tracetest');2var currentSelector = tracetest.currentSelector();3console.log(currentSelector);4var tracetest = require('tracetest');5var currentSelector = tracetest.currentSelector();6console.log(currentSelector);7var tracetest = require('tracetest');8var currentSelector = tracetest.currentSelector();9console.log(currentSelector);10var tracetest = require('tracetest');11var currentSelector = tracetest.currentSelector();12console.log(currentSelector);13var tracetest = require('tracetest');14var currentSelector = tracetest.currentSelector();15console.log(currentSelector);16var tracetest = require('tracetest');17var currentSelector = tracetest.currentSelector();18console.log(currentSelector);19var tracetest = require('tracetest');20var currentSelector = tracetest.currentSelector();21console.log(currentSelector);22var tracetest = require('tracetest');23var currentSelector = tracetest.currentSelector();24console.log(currentSelector);25var tracetest = require('tracetest');26var currentSelector = tracetest.currentSelector();27console.log(currentSelector);28var tracetest = require('tracetest');29var currentSelector = tracetest.currentSelector();30console.log(currentSelector);31var tracetest = require('tracetest');32var currentSelector = tracetest.currentSelector();33console.log(currentSelector);34var tracetest = require('tracetest');35var currentSelector = tracetest.currentSelector();36console.log(currentSelector);37var tracetest = require('tracetest');38var currentSelector = tracetest.currentSelector();39console.log(currentSelector);
Using AI Code Generation
1var tracetest = require('tracetest');2var trace = tracetest.trace;3var currentSelector = tracetest.currentSelector;4var test = require('test');5var assert = test.assert;6var trace = tracetest.trace;7var currentSelector = tracetest.currentSelector;8exports.testCurrentSelector = function() {9 var selector = currentSelector();10 assert.equal(selector, 'tracetest.currentSelector',11 'currentSelector should return the current function name');12};13require('test').run(exports);14 > var trace = require('trace');15> var system = require('system');16> exports.trace = function trace() {17> + var selector = currentSelector(); 18 > var trace = require('trace');19> var system = require('system');20> exports.trace = function trace() {21> + var selector = currentSelector(); 22Attachment #560778 - Flags: review?(jhammel) → review+
Using AI Code Generation
1var trace = require('tracetest');2var currentSelector = trace.currentSelector;3var selector = currentSelector();4console.log(selector);5var trace = require('tracetest');6var currentSelector = trace.currentSelector;
Using AI Code Generation
1var tracetest = require("tracetest");2var currentSelector = tracetest.currentSelector;3var selector = currentSelector();4console.log(selector);5 var selector = currentSelector();6 console.log(selector);7 var selector = currentSelector();8 console.log(selector);9var tracetest = require("tracetest");10var currentSelector = tracetest.currentSelector;11var selector = currentSelector();12console.log(selector);13 var selector = currentSelector();14 console.log(selector);15 var selector = currentSelector();16 console.log(selector);17var tracetest = require("tracetest");18var currentSelector = tracetest.currentSelector;19var selector = currentSelector();20console.log(selector);21 var selector = currentSelector();22 console.log(selector);23 var selector = currentSelector();24 console.log(selector);
Using AI Code Generation
1var currentSelector = require('./tracetesting.js').currentSelector;2console.log(currentSelector('test'));3exports.currentSelector = function(selector) {4 return selector;5}6You can use the following methods to import a variable, an object, or a function:7require()8module.exports = {9 currentSelector: function(selector) {10 return selector;11 }12}13You can use the following methods to import a variable, an object, or a function:14require()15exports.currentSelector = function(selector) {16 return selector;17}
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!