| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 | "use strict";(function (window, document, bs, undefined) {    var socket = bs.socket;    var uiOptions = {        bs: {}    };    socket.on("ui:connection", function (options) {        uiOptions = options;        bs.socket.emit("ui:history:connected", {            href: window.location.href        });    });    socket.on("ui:element:remove", function (data) {        if (data.id) {            var elem = document.getElementById(data.id);            if (elem) {                removeElement(elem);            }        }    });    socket.on("highlight", function () {        var id = "__browser-sync-highlight__";        var elem = document.getElementById(id);        if (elem) {            return removeElement(elem);        }        (function (e) {            e.style.position = "fixed";            e.style.zIndex = "1000";            e.style.width = "100%";            e.style.height = "100%";            e.style.borderWidth = "5px";            e.style.borderColor = "red";            e.style.borderStyle = "solid";            e.style.top = "0";            e.style.left = "0";            e.setAttribute("id", id);            document.getElementsByTagName("body")[0].appendChild(e);        })(document.createElement("div"));    });    socket.on("ui:element:add", function (data) {        var elem = document.getElementById(data.id);        if (!elem) {            if (data.type === "css") {                return addCss(data);            }            if (data.type === "js") {                return addJs(data);            }            if (data.type === "dom") {                return addDomNode(data);            }        }    });    bs.addDomNode = addDomNode;    bs.addJs      = addJs;    bs.addCss     = addJs;    function addJs(data) {        (function (e) {            e.setAttribute("src", getAbsoluteUrl(data.src));            e.setAttribute("id", data.id);            document.getElementsByTagName("body")[0].appendChild(e);        })(document.createElement("script"));    }    function addCss(data) {        (function (e) {            e.setAttribute("rel",  "stylesheet");            e.setAttribute("type", "text/css");            e.setAttribute("id",   data.id);            e.setAttribute("media", "all");            e.setAttribute("href", getAbsoluteUrl(data.src));            document.getElementsByTagName("head")[0].appendChild(e);        })(document.createElement("link"));    }    function addDomNode(data) {        var elem = document.createElement(data.tagName);        for (var attr in data.attrs) {            elem.setAttribute(attr,  data.attrs[attr]);        }        if (data.placement) {            document.getElementsByTagName(data.placement)[0].appendChild(elem);        } else {            document.getElementsByTagName("body")[0].appendChild(elem);        }        return elem;    }    function removeElement(element) {        if (element && element.parentNode) {            element.parentNode.removeChild(element);        }    }    function getAbsoluteUrl(path) {        if (path.match(/^h/)) {            return path;        }        return [window.location.protocol, "//", getHost(), path].join("");    }    function getHost () {        return uiOptions.bs.mode === "snippet" ? window.location.hostname + ":" + uiOptions.bs.port : window.location.host;    }})(window, document, ___browserSync___);
 |