/* * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./node_modules/after/index.js": /*!*************************************!*\ !*** ./node_modules/after/index.js ***! \*************************************/ /***/ ((module) => { eval("module.exports = after\n\nfunction after(count, callback, err_cb) {\n var bail = false\n err_cb = err_cb || noop\n proxy.count = count\n\n return (count === 0) ? callback() : proxy\n\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times')\n }\n --proxy.count\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true\n callback(err)\n // future error callbacks will go to error handler\n callback = err_cb\n } else if (proxy.count === 0 && !bail) {\n callback(null, result)\n }\n }\n}\n\nfunction noop() {}\n\n\n//# sourceURL=webpack://browser-sync-client/./node_modules/after/index.js?"); /***/ }), /***/ "./node_modules/arraybuffer.slice/index.js": /*!*************************************************!*\ !*** ./node_modules/arraybuffer.slice/index.js ***! \*************************************************/ /***/ ((module) => { eval("/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n\n if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n if (start < 0) { start += bytes; }\n if (end < 0) { end += bytes; }\n if (end > bytes) { end = bytes; }\n\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for (var i = start, ii = 0; i < end; i++, ii++) {\n result[ii] = abv[i];\n }\n return result.buffer;\n};\n\n\n//# sourceURL=webpack://browser-sync-client/./node_modules/arraybuffer.slice/index.js?"); /***/ }), /***/ "./lib/browser.utils.ts": /*!******************************!*\ !*** ./lib/browser.utils.ts ***! \******************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction getWindow() {\n return window;\n}\nexports.getWindow = getWindow;\n/**\n * @returns {HTMLDocument}\n */\nfunction getDocument() {\n return document;\n}\nexports.getDocument = getDocument;\n/**\n * Get the current x/y position crossbow\n * @returns {{x: *, y: *}}\n */\nfunction getBrowserScrollPosition(window, document) {\n var scrollX;\n var scrollY;\n var dElement = document.documentElement;\n var dBody = document.body;\n if (window.pageYOffset !== undefined) {\n scrollX = window.pageXOffset;\n scrollY = window.pageYOffset;\n }\n else {\n scrollX = dElement.scrollLeft || dBody.scrollLeft || 0;\n scrollY = dElement.scrollTop || dBody.scrollTop || 0;\n }\n return {\n x: scrollX,\n y: scrollY\n };\n}\nexports.getBrowserScrollPosition = getBrowserScrollPosition;\n/**\n * @returns {{x: number, y: number}}\n */\nfunction getDocumentScrollSpace(document) {\n var dElement = document.documentElement;\n var dBody = document.body;\n return {\n x: dBody.scrollHeight - dElement.clientWidth,\n y: dBody.scrollHeight - dElement.clientHeight\n };\n}\nexports.getDocumentScrollSpace = getDocumentScrollSpace;\n/**\n * Saves scroll position into cookies\n */\nfunction saveScrollPosition(window, document) {\n var pos = getBrowserScrollPosition(window, document);\n document.cookie = \"bs_scroll_pos=\" + [pos.x, pos.y].join(\",\");\n}\nexports.saveScrollPosition = saveScrollPosition;\n/**\n * Restores scroll position from cookies\n */\nfunction restoreScrollPosition() {\n var pos = getDocument()\n .cookie.replace(/(?:(?:^|.*;\\s*)bs_scroll_pos\\s*\\=\\s*([^;]*).*$)|^.*$/, \"$1\")\n .split(\",\");\n getWindow().scrollTo(Number(pos[0]), Number(pos[1]));\n}\nexports.restoreScrollPosition = restoreScrollPosition;\n/**\n * @param tagName\n * @param elem\n * @returns {*|number}\n */\nfunction getElementIndex(tagName, elem) {\n var allElems = getDocument().getElementsByTagName(tagName);\n return Array.prototype.indexOf.call(allElems, elem);\n}\nexports.getElementIndex = getElementIndex;\n/**\n * Force Change event on radio & checkboxes (IE)\n */\nfunction forceChange(elem) {\n elem.blur();\n elem.focus();\n}\nexports.forceChange = forceChange;\n/**\n * @param elem\n * @returns {{tagName: (elem.tagName|*), index: *}}\n */\nfunction getElementData(elem) {\n var tagName = elem.tagName;\n var index = getElementIndex(tagName, elem);\n return {\n tagName: tagName,\n index: index\n };\n}\nexports.getElementData = getElementData;\n/**\n * @param {string} tagName\n * @param {number} index\n */\nfunction getSingleElement(tagName, index) {\n var elems = getDocument().getElementsByTagName(tagName);\n return elems[index];\n}\nexports.getSingleElement = getSingleElement;\n/**\n * Get the body element\n */\nfunction getBody() {\n return getDocument().getElementsByTagName(\"body\")[0];\n}\nexports.getBody = getBody;\n/**\n * @param {{x: number, y: number}} pos\n */\nfunction setScroll(pos) {\n getWindow().scrollTo(pos.x, pos.y);\n}\nexports.setScroll = setScroll;\n/**\n * Hard reload\n */\nfunction reloadBrowser() {\n getWindow().location.reload(true);\n}\nexports.reloadBrowser = reloadBrowser;\n/**\n * Foreach polyfill\n * @param coll\n * @param fn\n */\nfunction forEach(coll, fn) {\n for (var i = 0, n = coll.length; i < n; i += 1) {\n fn(coll[i], i, coll);\n }\n}\nexports.forEach = forEach;\n/**\n * Are we dealing with old IE?\n * @returns {boolean}\n */\nfunction isOldIe() {\n return typeof getWindow().attachEvent !== \"undefined\";\n}\nexports.isOldIe = isOldIe;\n/**\n * Split the URL information\n * @returns {object}\n */\nfunction getLocation(url) {\n var location = getDocument().createElement(\"a\");\n location.href = url;\n if (location.host === \"\") {\n location.href = location.href;\n }\n return location;\n}\nexports.getLocation = getLocation;\n/**\n * @param {String} val\n * @returns {boolean}\n */\nfunction isUndefined(val) {\n return \"undefined\" === typeof val;\n}\nexports.isUndefined = isUndefined;\n/**\n * @param obj\n * @param path\n */\nfunction getByPath(obj, path) {\n for (var i = 0, tempPath = path.split(\".\"), len = tempPath.length; i < len; i++) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n obj = obj[tempPath[i]];\n }\n if (typeof obj === \"undefined\") {\n return false;\n }\n return obj;\n}\nexports.getByPath = getByPath;\nfunction getScrollPosition(window, document) {\n var pos = getBrowserScrollPosition(window, document);\n return {\n raw: pos,\n proportional: getScrollTopPercentage(pos, document) // Get % of y axis of scroll\n };\n}\nexports.getScrollPosition = getScrollPosition;\nfunction getScrollPositionForElement(element) {\n var raw = {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n var scrollSpace = {\n x: element.scrollWidth,\n y: element.scrollHeight\n };\n return {\n raw: raw,\n proportional: getScrollPercentage(scrollSpace, raw).y // Get % of y axis of scroll\n };\n}\nexports.getScrollPositionForElement = getScrollPositionForElement;\nfunction getScrollTopPercentage(pos, document) {\n var scrollSpace = getDocumentScrollSpace(document);\n var percentage = getScrollPercentage(scrollSpace, pos);\n return percentage.y;\n}\nexports.getScrollTopPercentage = getScrollTopPercentage;\nfunction getScrollPercentage(scrollSpace, scrollPosition) {\n var x = scrollPosition.x / scrollSpace.x;\n var y = scrollPosition.y / scrollSpace.y;\n return {\n x: x || 0,\n y: y\n };\n}\nexports.getScrollPercentage = getScrollPercentage;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/browser.utils.ts?"); /***/ }), /***/ "./lib/dom-effects.ts": /*!****************************!*\ !*** ./lib/dom-effects.ts ***! \****************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar _a;\nvar BehaviorSubject_1 = __webpack_require__(/*! rxjs/BehaviorSubject */ \"./node_modules/rxjs/BehaviorSubject.js\");\nvar prop_set_dom_effect_1 = __webpack_require__(/*! ./dom-effects/prop-set.dom-effect */ \"./lib/dom-effects/prop-set.dom-effect.ts\");\nvar style_set_dom_effect_1 = __webpack_require__(/*! ./dom-effects/style-set.dom-effect */ \"./lib/dom-effects/style-set.dom-effect.ts\");\nvar link_replace_dom_effect_1 = __webpack_require__(/*! ./dom-effects/link-replace.dom-effect */ \"./lib/dom-effects/link-replace.dom-effect.ts\");\nvar set_scroll_dom_effect_1 = __webpack_require__(/*! ./dom-effects/set-scroll.dom-effect */ \"./lib/dom-effects/set-scroll.dom-effect.ts\");\nvar set_window_name_dom_effect_1 = __webpack_require__(/*! ./dom-effects/set-window-name.dom-effect */ \"./lib/dom-effects/set-window-name.dom-effect.ts\");\nvar Events;\n(function (Events) {\n Events[\"PropSet\"] = \"@@BSDOM.Events.PropSet\";\n Events[\"StyleSet\"] = \"@@BSDOM.Events.StyleSet\";\n Events[\"LinkReplace\"] = \"@@BSDOM.Events.LinkReplace\";\n Events[\"SetScroll\"] = \"@@BSDOM.Events.SetScroll\";\n Events[\"SetWindowName\"] = \"@@BSDOM.Events.SetWindowName\";\n})(Events = exports.Events || (exports.Events = {}));\nexports.domHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\n _a[Events.PropSet] = prop_set_dom_effect_1.propSetDomEffect,\n _a[Events.StyleSet] = style_set_dom_effect_1.styleSetDomEffect,\n _a[Events.LinkReplace] = link_replace_dom_effect_1.linkReplaceDomEffect,\n _a[Events.SetScroll] = set_scroll_dom_effect_1.setScrollDomEffect,\n _a[Events.SetWindowName] = set_window_name_dom_effect_1.setWindowNameDomEffect,\n _a));\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/dom-effects.ts?"); /***/ }), /***/ "./lib/dom-effects/link-replace.dom-effect.ts": /*!****************************************************!*\ !*** ./lib/dom-effects/link-replace.dom-effect.ts ***! \****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar Log = __webpack_require__(/*! ../log */ \"./lib/log.ts\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar dom_effects_1 = __webpack_require__(/*! ../dom-effects */ \"./lib/dom-effects.ts\");\nfunction linkReplaceDomEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"injectNotification\"))), filter_1.filter(function (_a) {\n var inject = _a[1];\n return inject;\n }), map_1.map(function (_a) {\n var incoming = _a[0], inject = _a[1];\n var message = \"[LinkReplace] \" + incoming.basename;\n if (inject === \"overlay\") {\n return Log.overlayInfo(message);\n }\n return Log.consoleInfo(message);\n }));\n}\nexports.linkReplaceDomEffect = linkReplaceDomEffect;\nfunction linkReplace(incoming) {\n return [dom_effects_1.Events.LinkReplace, incoming];\n}\nexports.linkReplace = linkReplace;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/dom-effects/link-replace.dom-effect.ts?"); /***/ }), /***/ "./lib/dom-effects/prop-set.dom-effect.ts": /*!************************************************!*\ !*** ./lib/dom-effects/prop-set.dom-effect.ts ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar dom_effects_1 = __webpack_require__(/*! ../dom-effects */ \"./lib/dom-effects.ts\");\nvar Log = __webpack_require__(/*! ../log */ \"./lib/log.ts\");\nfunction propSetDomEffect(xs) {\n return xs.pipe(tap_1.tap(function (event) {\n var target = event.target, prop = event.prop, value = event.value;\n target[prop] = value;\n }), map_1.map(function (e) {\n return Log.consoleInfo(\"[PropSet]\", e.target, e.prop + \" = \" + e.pathname);\n }));\n}\nexports.propSetDomEffect = propSetDomEffect;\nfunction propSet(incoming) {\n return [dom_effects_1.Events.PropSet, incoming];\n}\nexports.propSet = propSet;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/dom-effects/prop-set.dom-effect.ts?"); /***/ }), /***/ "./lib/dom-effects/set-scroll.dom-effect.ts": /*!**************************************************!*\ !*** ./lib/dom-effects/set-scroll.dom-effect.ts ***! \**************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar dom_effects_1 = __webpack_require__(/*! ../dom-effects */ \"./lib/dom-effects.ts\");\nfunction setScroll(x, y) {\n return [dom_effects_1.Events.SetScroll, { x: x, y: y }];\n}\nexports.setScroll = setScroll;\nfunction setScrollDomEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\n var event = _a[0], window = _a[1];\n return window.scrollTo(event.x, event.y);\n }), ignoreElements_1.ignoreElements());\n}\nexports.setScrollDomEffect = setScrollDomEffect;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/dom-effects/set-scroll.dom-effect.ts?"); /***/ }), /***/ "./lib/dom-effects/set-window-name.dom-effect.ts": /*!*******************************************************!*\ !*** ./lib/dom-effects/set-window-name.dom-effect.ts ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar dom_effects_1 = __webpack_require__(/*! ../dom-effects */ \"./lib/dom-effects.ts\");\nfunction setWindowNameDomEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\n var value = _a[0], window = _a[1];\n return (window.name = value);\n }), ignoreElements_1.ignoreElements());\n}\nexports.setWindowNameDomEffect = setWindowNameDomEffect;\nfunction setWindowName(incoming) {\n return [dom_effects_1.Events.SetWindowName, incoming];\n}\nexports.setWindowName = setWindowName;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/dom-effects/set-window-name.dom-effect.ts?"); /***/ }), /***/ "./lib/dom-effects/style-set.dom-effect.ts": /*!*************************************************!*\ !*** ./lib/dom-effects/style-set.dom-effect.ts ***! \*************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar dom_effects_1 = __webpack_require__(/*! ../dom-effects */ \"./lib/dom-effects.ts\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar Log = __webpack_require__(/*! ../log */ \"./lib/log.ts\");\nfunction styleSetDomEffect(xs) {\n return xs.pipe(tap_1.tap(function (event) {\n var style = event.style, styleName = event.styleName, newValue = event.newValue;\n style[styleName] = newValue;\n }), map_1.map(function (e) { return Log.consoleInfo(\"[StyleSet] \" + e.styleName + \" = \" + e.pathName); }));\n}\nexports.styleSetDomEffect = styleSetDomEffect;\nfunction styleSet(incoming) {\n return [dom_effects_1.Events.StyleSet, incoming];\n}\nexports.styleSet = styleSet;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/dom-effects/style-set.dom-effect.ts?"); /***/ }), /***/ "./lib/effects.ts": /*!************************!*\ !*** ./lib/effects.ts ***! \************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar _a;\nvar BehaviorSubject_1 = __webpack_require__(/*! rxjs/BehaviorSubject */ \"./node_modules/rxjs/BehaviorSubject.js\");\nvar set_options_effect_1 = __webpack_require__(/*! ./effects/set-options.effect */ \"./lib/effects/set-options.effect.ts\");\nvar file_reload_effect_1 = __webpack_require__(/*! ./effects/file-reload.effect */ \"./lib/effects/file-reload.effect.ts\");\nvar browser_set_location_effect_1 = __webpack_require__(/*! ./effects/browser-set-location.effect */ \"./lib/effects/browser-set-location.effect.ts\");\nvar simulate_click_effect_1 = __webpack_require__(/*! ./effects/simulate-click.effect */ \"./lib/effects/simulate-click.effect.ts\");\nvar set_element_value_effect_1 = __webpack_require__(/*! ./effects/set-element-value.effect */ \"./lib/effects/set-element-value.effect.ts\");\nvar set_element_toggle_value_effect_1 = __webpack_require__(/*! ./effects/set-element-toggle-value.effect */ \"./lib/effects/set-element-toggle-value.effect.ts\");\nvar set_scroll_1 = __webpack_require__(/*! ./effects/set-scroll */ \"./lib/effects/set-scroll.ts\");\nvar browser_reload_effect_1 = __webpack_require__(/*! ./effects/browser-reload.effect */ \"./lib/effects/browser-reload.effect.ts\");\nvar EffectNames;\n(function (EffectNames) {\n EffectNames[\"FileReload\"] = \"@@FileReload\";\n EffectNames[\"PreBrowserReload\"] = \"@@PreBrowserReload\";\n EffectNames[\"BrowserReload\"] = \"@@BrowserReload\";\n EffectNames[\"BrowserSetLocation\"] = \"@@BrowserSetLocation\";\n EffectNames[\"BrowserSetScroll\"] = \"@@BrowserSetScroll\";\n EffectNames[\"SetOptions\"] = \"@@SetOptions\";\n EffectNames[\"SimulateClick\"] = \"@@SimulateClick\";\n EffectNames[\"SetElementValue\"] = \"@@SetElementValue\";\n EffectNames[\"SetElementToggleValue\"] = \"@@SetElementToggleValue\";\n})(EffectNames = exports.EffectNames || (exports.EffectNames = {}));\nexports.effectOutputHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\n _a[EffectNames.SetOptions] = set_options_effect_1.setOptionsEffect,\n _a[EffectNames.FileReload] = file_reload_effect_1.fileReloadEffect,\n _a[EffectNames.BrowserReload] = browser_reload_effect_1.browserReloadEffect,\n _a[EffectNames.BrowserSetLocation] = browser_set_location_effect_1.browserSetLocationEffect,\n _a[EffectNames.SimulateClick] = simulate_click_effect_1.simulateClickEffect,\n _a[EffectNames.SetElementValue] = set_element_value_effect_1.setElementValueEffect,\n _a[EffectNames.SetElementToggleValue] = set_element_toggle_value_effect_1.setElementToggleValueEffect,\n _a[EffectNames.BrowserSetScroll] = set_scroll_1.setScrollEffect,\n _a));\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects.ts?"); /***/ }), /***/ "./lib/effects/browser-reload.effect.ts": /*!**********************************************!*\ !*** ./lib/effects/browser-reload.effect.ts ***! \**********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nfunction browserReload() {\n return [effects_1.EffectNames.BrowserReload];\n}\nexports.browserReload = browserReload;\nfunction preBrowserReload() {\n return [effects_1.EffectNames.PreBrowserReload];\n}\nexports.preBrowserReload = preBrowserReload;\nfunction browserReloadEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\n var window = _a[1];\n return window.location.reload(true);\n }));\n}\nexports.browserReloadEffect = browserReloadEffect;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/browser-reload.effect.ts?"); /***/ }), /***/ "./lib/effects/browser-set-location.effect.ts": /*!****************************************************!*\ !*** ./lib/effects/browser-set-location.effect.ts ***! \****************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\nfunction browserSetLocationEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$), tap_1.tap(function (_a) {\n var event = _a[0], window = _a[1];\n if (event.path) {\n return (window.location =\n window.location.protocol +\n \"//\" +\n window.location.host +\n event.path);\n }\n if (event.url) {\n return (window.location = event.url);\n }\n }), ignoreElements_1.ignoreElements());\n}\nexports.browserSetLocationEffect = browserSetLocationEffect;\nfunction browserSetLocation(input) {\n return [effects_1.EffectNames.BrowserSetLocation, input];\n}\nexports.browserSetLocation = browserSetLocation;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/browser-set-location.effect.ts?"); /***/ }), /***/ "./lib/effects/file-reload.effect.ts": /*!*******************************************!*\ !*** ./lib/effects/file-reload.effect.ts ***! \*******************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\nvar Reloader_1 = __webpack_require__(/*! ../../vendor/Reloader */ \"./vendor/Reloader.ts\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar mergeMap_1 = __webpack_require__(/*! rxjs/operators/mergeMap */ \"./node_modules/rxjs/operators/mergeMap.js\");\nfunction fileReload(event) {\n return [effects_1.EffectNames.FileReload, event];\n}\nexports.fileReload = fileReload;\n/**\n * Attempt to reload files in place\n * @param xs\n * @param inputs\n */\nfunction fileReloadEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$, inputs.document$, inputs.navigator$), mergeMap_1.mergeMap(function (_a) {\n var event = _a[0], options = _a[1], document = _a[2], navigator = _a[3];\n return Reloader_1.reload(document, navigator)(event, {\n tagNames: options.tagNames,\n liveCSS: true,\n liveImg: true\n });\n }));\n}\nexports.fileReloadEffect = fileReloadEffect;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/file-reload.effect.ts?"); /***/ }), /***/ "./lib/effects/set-element-toggle-value.effect.ts": /*!********************************************************!*\ !*** ./lib/effects/set-element-toggle-value.effect.ts ***! \********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\nfunction setElementToggleValueEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.document$), tap_1.tap(function (_a) {\n var event = _a[0], document = _a[1];\n var elems = document.getElementsByTagName(event.tagName);\n var match = elems[event.index];\n if (match) {\n if (event.type === \"radio\") {\n match.checked = true;\n }\n if (event.type === \"checkbox\") {\n match.checked = event.checked;\n }\n if (event.tagName === \"SELECT\") {\n match.value = event.value;\n }\n }\n }));\n}\nexports.setElementToggleValueEffect = setElementToggleValueEffect;\nfunction setElementToggleValue(event) {\n return [effects_1.EffectNames.SetElementToggleValue, event];\n}\nexports.setElementToggleValue = setElementToggleValue;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/set-element-toggle-value.effect.ts?"); /***/ }), /***/ "./lib/effects/set-element-value.effect.ts": /*!*************************************************!*\ !*** ./lib/effects/set-element-value.effect.ts ***! \*************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\nfunction setElementValueEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.document$), tap_1.tap(function (_a) {\n var event = _a[0], document = _a[1];\n var elems = document.getElementsByTagName(event.tagName);\n var match = elems[event.index];\n if (match) {\n match.value = event.value;\n }\n }));\n}\nexports.setElementValueEffect = setElementValueEffect;\nfunction setElementValue(event) {\n return [effects_1.EffectNames.SetElementValue, event];\n}\nexports.setElementValue = setElementValue;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/set-element-value.effect.ts?"); /***/ }), /***/ "./lib/effects/set-options.effect.ts": /*!*******************************************!*\ !*** ./lib/effects/set-options.effect.ts ***! \*******************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\n/**\n * Set the local client options\n * @param xs\n * @param inputs\n */\nfunction setOptionsEffect(xs, inputs) {\n return xs.pipe(tap_1.tap(function (options) { return inputs.option$.next(options); }), \n // map(() => consoleInfo('set options'))\n ignoreElements_1.ignoreElements());\n}\nexports.setOptionsEffect = setOptionsEffect;\nfunction setOptions(options) {\n return [effects_1.EffectNames.SetOptions, options];\n}\nexports.setOptions = setOptions;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/set-options.effect.ts?"); /***/ }), /***/ "./lib/effects/set-scroll.ts": /*!***********************************!*\ !*** ./lib/effects/set-scroll.ts ***! \***********************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar partition_1 = __webpack_require__(/*! rxjs/operators/partition */ \"./node_modules/rxjs/operators/partition.js\");\nvar merge_1 = __webpack_require__(/*! rxjs/observable/merge */ \"./node_modules/rxjs/observable/merge.js\");\nvar browser_utils_1 = __webpack_require__(/*! ../browser.utils */ \"./lib/browser.utils.ts\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nfunction setScrollEffect(xs, inputs) {\n {\n /**\n * Group the incoming event with window, document & scrollProportionally argument\n */\n var tupleStream$ = xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$, inputs.document$, inputs.option$.pipe(pluck_1.pluck(\"scrollProportionally\"))));\n /**\n * Split the stream between document scrolls and element scrolls\n */\n var _a = partition_1.partition(function (_a) {\n var event = _a[0];\n return event.tagName === \"document\";\n })(tupleStream$), document$ = _a[0], element$ = _a[1];\n /**\n * Further split the element scroll between those matching in `scrollElementMapping`\n * and regular element scrolls\n */\n var _b = partition_1.partition(function (_a) {\n var event = _a[0];\n return event.mappingIndex > -1;\n })(element$), mapped$ = _b[0], nonMapped$ = _b[1];\n return merge_1.merge(\n /**\n * Main window scroll\n */\n document$.pipe(tap_1.tap(function (incoming) {\n var event = incoming[0], window = incoming[1], document = incoming[2], scrollProportionally = incoming[3];\n var scrollSpace = browser_utils_1.getDocumentScrollSpace(document);\n if (scrollProportionally) {\n return window.scrollTo(0, scrollSpace.y * event.position.proportional); // % of y axis of scroll to px\n }\n return window.scrollTo(0, event.position.raw.y);\n })), \n /**\n * Regular, non-mapped Element scrolls\n */\n nonMapped$.pipe(tap_1.tap(function (incoming) {\n var event = incoming[0], window = incoming[1], document = incoming[2], scrollProportionally = incoming[3];\n var matchingElements = document.getElementsByTagName(event.tagName);\n if (matchingElements && matchingElements.length) {\n var match = matchingElements[event.index];\n if (match) {\n return scrollElement(match, scrollProportionally, event);\n }\n }\n })), \n /**\n * Element scrolls given in 'scrollElementMapping'\n */\n mapped$.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"scrollElementMapping\"))), \n /**\n * Filter the elements in the option `scrollElementMapping` so\n * that it does not contain the element that triggered the event\n */\n map_1.map(function (_a) {\n var incoming = _a[0], scrollElementMapping = _a[1];\n var event = incoming[0];\n return [\n incoming,\n scrollElementMapping.filter(function (item, index) { return index !== event.mappingIndex; })\n ];\n }), \n /**\n * Now perform the scroll on all other matching elements\n */\n tap_1.tap(function (_a) {\n var incoming = _a[0], scrollElementMapping = _a[1];\n var event = incoming[0], window = incoming[1], document = incoming[2], scrollProportionally = incoming[3];\n scrollElementMapping\n .map(function (selector) { return document.querySelector(selector); })\n .forEach(function (element) {\n scrollElement(element, scrollProportionally, event);\n });\n }))).pipe(ignoreElements_1.ignoreElements());\n }\n}\nexports.setScrollEffect = setScrollEffect;\nfunction scrollElement(element, scrollProportionally, event) {\n if (scrollProportionally && element.scrollTo) {\n return element.scrollTo(0, element.scrollHeight * event.position.proportional); // % of y axis of scroll to px\n }\n return element.scrollTo(0, event.position.raw.y);\n}\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/set-scroll.ts?"); /***/ }), /***/ "./lib/effects/simulate-click.effect.ts": /*!**********************************************!*\ !*** ./lib/effects/simulate-click.effect.ts ***! \**********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\nfunction simulateClickEffect(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$, inputs.document$), tap_1.tap(function (_a) {\n var event = _a[0], window = _a[1], document = _a[2];\n var elems = document.getElementsByTagName(event.tagName);\n var match = elems[event.index];\n if (match) {\n if (document.createEvent) {\n window.setTimeout(function () {\n var evObj = document.createEvent(\"MouseEvents\");\n evObj.initEvent(\"click\", true, true);\n match.dispatchEvent(evObj);\n }, 0);\n }\n else {\n window.setTimeout(function () {\n if (document.createEventObject) {\n var evObj = document.createEventObject();\n evObj.cancelBubble = true;\n match.fireEvent(\"on\" + \"click\", evObj);\n }\n }, 0);\n }\n }\n }), ignoreElements_1.ignoreElements());\n}\nexports.simulateClickEffect = simulateClickEffect;\nfunction simulateClick(event) {\n return [effects_1.EffectNames.SimulateClick, event];\n}\nexports.simulateClick = simulateClick;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/effects/simulate-click.effect.ts?"); /***/ }), /***/ "./lib/index.ts": /*!**********************!*\ !*** ./lib/index.ts ***! \**********************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar zip_1 = __webpack_require__(/*! rxjs/observable/zip */ \"./node_modules/rxjs/observable/zip.js\");\nvar socket_1 = __webpack_require__(/*! ./socket */ \"./lib/socket.ts\");\nvar notify_1 = __webpack_require__(/*! ./notify */ \"./lib/notify.ts\");\nvar dom_effects_1 = __webpack_require__(/*! ./dom-effects */ \"./lib/dom-effects.ts\");\nvar socket_messages_1 = __webpack_require__(/*! ./socket-messages */ \"./lib/socket-messages.ts\");\nvar merge_1 = __webpack_require__(/*! rxjs/observable/merge */ \"./node_modules/rxjs/observable/merge.js\");\nvar log_1 = __webpack_require__(/*! ./log */ \"./lib/log.ts\");\nvar effects_1 = __webpack_require__(/*! ./effects */ \"./lib/effects.ts\");\nvar scroll_restore_1 = __webpack_require__(/*! ./scroll-restore */ \"./lib/scroll-restore.ts\");\nvar listeners_1 = __webpack_require__(/*! ./listeners */ \"./lib/listeners.ts\");\nvar groupBy_1 = __webpack_require__(/*! rxjs/operators/groupBy */ \"./node_modules/rxjs/operators/groupBy.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar mergeMap_1 = __webpack_require__(/*! rxjs/operators/mergeMap */ \"./node_modules/rxjs/operators/mergeMap.js\");\nvar share_1 = __webpack_require__(/*! rxjs/operators/share */ \"./node_modules/rxjs/operators/share.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar window$ = socket_1.initWindow();\nvar document$ = socket_1.initDocument();\nvar names$ = scroll_restore_1.initWindowName(window);\nvar _a = socket_1.initSocket(), socket$ = _a.socket$, io$ = _a.io$;\nvar option$ = socket_1.initOptions();\nvar navigator$ = of_1.of(navigator);\nvar notifyElement$ = notify_1.initNotify(option$.getValue());\nvar logInstance$ = log_1.initLogger(option$.getValue());\nvar outgoing$ = listeners_1.initListeners(window, document, socket$, option$);\nvar inputs = {\n window$: window$,\n document$: document$,\n socket$: socket$,\n option$: option$,\n navigator$: navigator$,\n notifyElement$: notifyElement$,\n logInstance$: logInstance$,\n io$: io$,\n outgoing$: outgoing$\n};\nfunction getStream(name, inputs) {\n return function (handlers$, inputStream$) {\n return inputStream$.pipe(groupBy_1.groupBy(function (_a) {\n var keyName = _a[0];\n return keyName;\n }), withLatestFrom_1.withLatestFrom(handlers$), filter_1.filter(function (_a) {\n var x = _a[0], handlers = _a[1];\n return typeof handlers[x.key] === \"function\";\n }), mergeMap_1.mergeMap(function (_a) {\n var x = _a[0], handlers = _a[1];\n return handlers[x.key](x.pipe(pluck_1.pluck(String(1))), inputs);\n }), share_1.share());\n };\n}\nvar combinedEffectHandler$ = zip_1.zip(effects_1.effectOutputHandlers$, scroll_restore_1.scrollRestoreHandlers$, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.reduce(function (acc, item) { return (__assign({}, acc, item)); }, {});\n});\nvar output$ = getStream(\"[socket]\", inputs)(socket_messages_1.socketHandlers$, merge_1.merge(inputs.socket$, outgoing$));\nvar effect$ = getStream(\"[effect]\", inputs)(combinedEffectHandler$, output$);\nvar dom$ = getStream(\"[dom-effect]\", inputs)(dom_effects_1.domHandlers$, merge_1.merge(effect$, names$));\nvar merged$ = merge_1.merge(output$, effect$, dom$);\nvar log$ = getStream(\"[log]\", inputs)(log_1.logHandler$, merged$);\nlog$.subscribe();\n// resume$.next(true);\n// var socket = require(\"./socket\");\n// var shims = require(\"./client-shims\");\n// var notify = require(\"./notify\");\n// // var codeSync = require(\"./code-sync\");\n// const { BrowserSync } = require(\"./browser-sync\");\n// var ghostMode = require(\"./ghostmode\");\n// var events = require(\"./events\");\n// var utils = require(\"./browser.utils\");\n//\n// const mitt = require(\"mitt\").default;\n//\n// var shouldReload = false;\n// var initialised = false;\n//\n// /**\n// * @param options\n// */\n// function init(options: bs.InitOptions) {\n// if (shouldReload && options.reloadOnRestart) {\n// utils.reloadBrowser();\n// }\n//\n// var BS = window.___browserSync___ || {};\n// var emitter = mitt();\n//\n// if (!BS.client) {\n// BS.client = true;\n//\n// var browserSync = new BrowserSync({ options, emitter, socket });\n//\n// // codeSync.init(browserSync);\n//\n// // // Always init on page load\n// // ghostMode.init(browserSync);\n// //\n// // notify.init(browserSync);\n// //\n// // if (options.notify) {\n// // notify.flash(\"Connected to BrowserSync\");\n// // }\n// }\n//\n// // if (!initialised) {\n// // socket.on(\"disconnect\", function() {\n// // if (options.notify) {\n// // notify.flash(\"Disconnected from BrowserSync\");\n// // }\n// // shouldReload = true;\n// // });\n// // initialised = true;\n// // }\n// }\n//\n// /**\n// * Handle individual socket connections\n// */\n// socket.on(\"connection\", init);\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/index.ts?"); /***/ }), /***/ "./lib/listeners.ts": /*!**************************!*\ !*** ./lib/listeners.ts ***! \**************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar merge_1 = __webpack_require__(/*! rxjs/observable/merge */ \"./node_modules/rxjs/observable/merge.js\");\nvar form_inputs_listener_1 = __webpack_require__(/*! ./listeners/form-inputs.listener */ \"./lib/listeners/form-inputs.listener.ts\");\nvar clicks_listener_1 = __webpack_require__(/*! ./listeners/clicks.listener */ \"./lib/listeners/clicks.listener.ts\");\nvar scroll_listener_1 = __webpack_require__(/*! ./listeners/scroll.listener */ \"./lib/listeners/scroll.listener.ts\");\nvar form_toggles_listener_1 = __webpack_require__(/*! ./listeners/form-toggles.listener */ \"./lib/listeners/form-toggles.listener.ts\");\nfunction initListeners(window, document, socket$, option$) {\n var merged$ = merge_1.merge(scroll_listener_1.getScrollStream(window, document, socket$, option$), clicks_listener_1.getClickStream(document, socket$, option$), form_inputs_listener_1.getFormInputStream(document, socket$, option$), form_toggles_listener_1.getFormTogglesStream(document, socket$, option$));\n return merged$;\n}\nexports.initListeners = initListeners;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/listeners.ts?"); /***/ }), /***/ "./lib/listeners/clicks.listener.ts": /*!******************************************!*\ !*** ./lib/listeners/clicks.listener.ts ***! \******************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar utils_1 = __webpack_require__(/*! ../utils */ \"./lib/utils.ts\");\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar browser_utils_1 = __webpack_require__(/*! ../browser.utils */ \"./lib/browser.utils.ts\");\nvar ClickEvent = __webpack_require__(/*! ../messages/ClickEvent */ \"./lib/messages/ClickEvent.ts\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar skip_1 = __webpack_require__(/*! rxjs/operators/skip */ \"./node_modules/rxjs/operators/skip.js\");\nvar distinctUntilChanged_1 = __webpack_require__(/*! rxjs/operators/distinctUntilChanged */ \"./node_modules/rxjs/operators/distinctUntilChanged.js\");\nvar switchMap_1 = __webpack_require__(/*! rxjs/operators/switchMap */ \"./node_modules/rxjs/operators/switchMap.js\");\nvar fromEvent_1 = __webpack_require__(/*! rxjs/observable/fromEvent */ \"./node_modules/rxjs/observable/fromEvent.js\");\nvar empty_1 = __webpack_require__(/*! rxjs/observable/empty */ \"./node_modules/rxjs/observable/empty.js\");\nfunction getClickStream(document, socket$, option$) {\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\n var name = _a[0];\n return name === socket_messages_1.IncomingSocketNames.Click;\n })));\n return option$.pipe(skip_1.skip(1), // initial option set before the connection event\n pluck_1.pluck(\"ghostMode\", \"clicks\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (canClick) {\n if (!canClick) {\n return empty_1.empty();\n }\n return fromEvent_1.fromEvent(document, \"click\", true).pipe(map_1.map(function (e) { return e.target; }), filter_1.filter(function (target) {\n if (target.tagName === \"LABEL\") {\n var id = target.getAttribute(\"for\");\n if (id && document.getElementById(id)) {\n return false;\n }\n }\n return true;\n }), withLatestFrom_1.withLatestFrom(canSync$), filter_1.filter(function (_a) {\n var canSync = _a[1];\n return canSync;\n }), map_1.map(function (_a) {\n var target = _a[0];\n return ClickEvent.outgoing(browser_utils_1.getElementData(target));\n }));\n }));\n}\nexports.getClickStream = getClickStream;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/listeners/clicks.listener.ts?"); /***/ }), /***/ "./lib/listeners/form-inputs.listener.ts": /*!***********************************************!*\ !*** ./lib/listeners/form-inputs.listener.ts ***! \***********************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar browser_utils_1 = __webpack_require__(/*! ../browser.utils */ \"./lib/browser.utils.ts\");\nvar utils_1 = __webpack_require__(/*! ../utils */ \"./lib/utils.ts\");\nvar KeyupEvent = __webpack_require__(/*! ../messages/KeyupEvent */ \"./lib/messages/KeyupEvent.ts\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar skip_1 = __webpack_require__(/*! rxjs/operators/skip */ \"./node_modules/rxjs/operators/skip.js\");\nvar distinctUntilChanged_1 = __webpack_require__(/*! rxjs/operators/distinctUntilChanged */ \"./node_modules/rxjs/operators/distinctUntilChanged.js\");\nvar switchMap_1 = __webpack_require__(/*! rxjs/operators/switchMap */ \"./node_modules/rxjs/operators/switchMap.js\");\nvar empty_1 = __webpack_require__(/*! rxjs/observable/empty */ \"./node_modules/rxjs/observable/empty.js\");\nvar fromEvent_1 = __webpack_require__(/*! rxjs/observable/fromEvent */ \"./node_modules/rxjs/observable/fromEvent.js\");\nfunction getFormInputStream(document, socket$, option$) {\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\n var name = _a[0];\n return name === socket_messages_1.IncomingSocketNames.Keyup;\n })));\n return option$.pipe(skip_1.skip(1), // initial option set before the connection event\n pluck_1.pluck(\"ghostMode\", \"forms\", \"inputs\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (formInputs) {\n if (!formInputs) {\n return empty_1.empty();\n }\n return fromEvent_1.fromEvent(document.body, \"keyup\", true).pipe(map_1.map(function (e) { return e.target || e.srcElement; }), filter_1.filter(function (target) {\n return target.tagName === \"INPUT\" ||\n target.tagName === \"TEXTAREA\";\n }), withLatestFrom_1.withLatestFrom(canSync$), filter_1.filter(function (_a) {\n var canSync = _a[1];\n return canSync;\n }), map_1.map(function (_a) {\n var eventTarget = _a[0];\n var target = browser_utils_1.getElementData(eventTarget);\n var value = eventTarget.value;\n return KeyupEvent.outgoing(target, value);\n }));\n }));\n}\nexports.getFormInputStream = getFormInputStream;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/listeners/form-inputs.listener.ts?"); /***/ }), /***/ "./lib/listeners/form-toggles.listener.ts": /*!************************************************!*\ !*** ./lib/listeners/form-toggles.listener.ts ***! \************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar browser_utils_1 = __webpack_require__(/*! ../browser.utils */ \"./lib/browser.utils.ts\");\nvar utils_1 = __webpack_require__(/*! ../utils */ \"./lib/utils.ts\");\nvar FormToggleEvent = __webpack_require__(/*! ../messages/FormToggleEvent */ \"./lib/messages/FormToggleEvent.ts\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar skip_1 = __webpack_require__(/*! rxjs/operators/skip */ \"./node_modules/rxjs/operators/skip.js\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar distinctUntilChanged_1 = __webpack_require__(/*! rxjs/operators/distinctUntilChanged */ \"./node_modules/rxjs/operators/distinctUntilChanged.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar switchMap_1 = __webpack_require__(/*! rxjs/operators/switchMap */ \"./node_modules/rxjs/operators/switchMap.js\");\nvar empty_1 = __webpack_require__(/*! rxjs/observable/empty */ \"./node_modules/rxjs/observable/empty.js\");\nvar fromEvent_1 = __webpack_require__(/*! rxjs/observable/fromEvent */ \"./node_modules/rxjs/observable/fromEvent.js\");\nfunction getFormTogglesStream(document, socket$, option$) {\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\n var name = _a[0];\n return name === socket_messages_1.IncomingSocketNames.InputToggle;\n })));\n return option$.pipe(skip_1.skip(1), pluck_1.pluck(\"ghostMode\", \"forms\", \"toggles\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (canToggle) {\n if (!canToggle) {\n return empty_1.empty();\n }\n return fromEvent_1.fromEvent(document, \"change\", true).pipe(map_1.map(function (e) { return e.target || e.srcElement; }), filter_1.filter(function (elem) { return elem.tagName === \"SELECT\"; }), withLatestFrom_1.withLatestFrom(canSync$), filter_1.filter(function (_a) {\n var canSync = _a[1];\n return canSync;\n }), map_1.map(function (_a) {\n var elem = _a[0], canSync = _a[1];\n var data = browser_utils_1.getElementData(elem);\n return FormToggleEvent.outgoing(data, {\n type: elem.type,\n checked: elem.checked,\n value: elem.value\n });\n }));\n }));\n}\nexports.getFormTogglesStream = getFormTogglesStream;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/listeners/form-toggles.listener.ts?"); /***/ }), /***/ "./lib/listeners/scroll.listener.ts": /*!******************************************!*\ !*** ./lib/listeners/scroll.listener.ts ***! \******************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar utils_1 = __webpack_require__(/*! ../utils */ \"./lib/utils.ts\");\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar browser_utils_1 = __webpack_require__(/*! ../browser.utils */ \"./lib/browser.utils.ts\");\nvar ScrollEvent = __webpack_require__(/*! ../messages/ScrollEvent */ \"./lib/messages/ScrollEvent.ts\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar distinctUntilChanged_1 = __webpack_require__(/*! rxjs/operators/distinctUntilChanged */ \"./node_modules/rxjs/operators/distinctUntilChanged.js\");\nvar switchMap_1 = __webpack_require__(/*! rxjs/operators/switchMap */ \"./node_modules/rxjs/operators/switchMap.js\");\nvar empty_1 = __webpack_require__(/*! rxjs/observable/empty */ \"./node_modules/rxjs/observable/empty.js\");\nvar skip_1 = __webpack_require__(/*! rxjs/operators/skip */ \"./node_modules/rxjs/operators/skip.js\");\nvar fromEvent_1 = __webpack_require__(/*! rxjs/observable/fromEvent */ \"./node_modules/rxjs/observable/fromEvent.js\");\nfunction getScrollStream(window, document, socket$, option$) {\n var canSync$ = utils_1.createTimedBooleanSwitch(socket$.pipe(filter_1.filter(function (_a) {\n var name = _a[0];\n return name === socket_messages_1.IncomingSocketNames.Scroll;\n })));\n /**\n * If the option 'scrollElementMapping' is provided\n * we cache thw\n * @type {Observable<(Element | null)[]>}\n */\n var elemMap$ = option$.pipe(pluck_1.pluck(\"scrollElementMapping\"), map_1.map(function (selectors) {\n return selectors.map(function (selector) { return document.querySelector(selector); });\n }));\n return option$.pipe(skip_1.skip(1), // initial option set before the connection event\n pluck_1.pluck(\"ghostMode\", \"scroll\"), distinctUntilChanged_1.distinctUntilChanged(), switchMap_1.switchMap(function (scroll) {\n if (!scroll)\n return empty_1.empty();\n return fromEvent_1.fromEvent(document, \"scroll\", true).pipe(map_1.map(function (e) { return e.target; }), withLatestFrom_1.withLatestFrom(canSync$, elemMap$), filter_1.filter(function (_a) {\n var canSync = _a[1];\n return Boolean(canSync);\n }), map_1.map(function (_a) {\n var target = _a[0], canSync = _a[1], elemMap = _a[2];\n if (target === document) {\n return ScrollEvent.outgoing(browser_utils_1.getScrollPosition(window, document), \"document\", 0);\n }\n var elems = document.getElementsByTagName(target.tagName);\n var index = Array.prototype.indexOf.call(elems || [], target);\n return ScrollEvent.outgoing(browser_utils_1.getScrollPositionForElement(target), target.tagName, index, elemMap.indexOf(target));\n }));\n }));\n}\nexports.getScrollStream = getScrollStream;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/listeners/scroll.listener.ts?"); /***/ }), /***/ "./lib/log.ts": /*!********************!*\ !*** ./lib/log.ts ***! \********************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar _a;\nvar BehaviorSubject_1 = __webpack_require__(/*! rxjs/BehaviorSubject */ \"./node_modules/rxjs/BehaviorSubject.js\");\nvar timer_1 = __webpack_require__(/*! rxjs/observable/timer */ \"./node_modules/rxjs/observable/timer.js\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar logger_1 = __webpack_require__(/*! ../vendor/logger */ \"./vendor/logger.ts\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar switchMap_1 = __webpack_require__(/*! rxjs/operators/switchMap */ \"./node_modules/rxjs/operators/switchMap.js\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nfunction initLogger(options) {\n var log = new logger_1.Nanologger(options.logPrefix || \"\", {\n colors: { magenta: \"#0F2634\" }\n });\n return of_1.of(log);\n}\nexports.initLogger = initLogger;\nvar LogNames;\n(function (LogNames) {\n LogNames[\"Log\"] = \"@@Log\";\n LogNames[\"Info\"] = \"@@Log.info\";\n LogNames[\"Debug\"] = \"@@Log.debug\";\n})(LogNames = exports.LogNames || (exports.LogNames = {}));\nvar Overlay;\n(function (Overlay) {\n Overlay[\"Info\"] = \"@@Overlay.info\";\n})(Overlay = exports.Overlay || (exports.Overlay = {}));\nfunction consoleInfo() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return [LogNames.Log, [LogNames.Info, args]];\n}\nexports.consoleInfo = consoleInfo;\nfunction consoleDebug() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return [LogNames.Log, [LogNames.Debug, args]];\n}\nexports.consoleDebug = consoleDebug;\nfunction overlayInfo(message, timeout) {\n if (timeout === void 0) { timeout = 2000; }\n return [Overlay.Info, [message, timeout]];\n}\nexports.overlayInfo = overlayInfo;\nexports.logHandler$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\n _a[LogNames.Log] = function (xs, inputs) {\n return xs.pipe(\n /**\n * access injectNotification from the options stream\n */\n withLatestFrom_1.withLatestFrom(inputs.logInstance$, inputs.option$.pipe(pluck_1.pluck(\"injectNotification\"))), \n /**\n * only accept messages if injectNotification !== console\n */\n filter_1.filter(function (_a) {\n var injectNotification = _a[2];\n return injectNotification === \"console\";\n }), tap_1.tap(function (_a) {\n var event = _a[0], log = _a[1];\n switch (event[0]) {\n case LogNames.Info: {\n return log.info.apply(log, event[1]);\n }\n case LogNames.Debug: {\n return log.debug.apply(log, event[1]);\n }\n }\n }));\n },\n _a[Overlay.Info] = function (xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$, inputs.notifyElement$, inputs.document$), \n /**\n * Reject all notifications if notify: false\n */\n filter_1.filter(function (_a) {\n var options = _a[1];\n return Boolean(options.notify);\n }), \n /**\n * Set the HTML of the notify element\n */\n tap_1.tap(function (_a) {\n var event = _a[0], options = _a[1], element = _a[2], document = _a[3];\n element.innerHTML = event[0];\n element.style.display = \"block\";\n document.body.appendChild(element);\n }), \n /**\n * Now remove the element after the given timeout\n */\n switchMap_1.switchMap(function (_a) {\n var event = _a[0], options = _a[1], element = _a[2], document = _a[3];\n return timer_1.timer(event[1] || 2000).pipe(tap_1.tap(function () {\n element.style.display = \"none\";\n if (element.parentNode) {\n document.body.removeChild(element);\n }\n }));\n }));\n },\n _a));\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/log.ts?"); /***/ }), /***/ "./lib/messages/BrowserLocation.ts": /*!*****************************************!*\ !*** ./lib/messages/BrowserLocation.ts ***! \*****************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar browser_set_location_effect_1 = __webpack_require__(/*! ../effects/browser-set-location.effect */ \"./lib/effects/browser-set-location.effect.ts\");\nfunction incomingBrowserLocation(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"location\"))), filter_1.filter(function (_a) {\n var canSyncLocation = _a[1];\n return canSyncLocation === true;\n }), map_1.map(function (_a) {\n var event = _a[0];\n return browser_set_location_effect_1.browserSetLocation(event);\n }));\n}\nexports.incomingBrowserLocation = incomingBrowserLocation;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/BrowserLocation.ts?"); /***/ }), /***/ "./lib/messages/BrowserNotify.ts": /*!***************************************!*\ !*** ./lib/messages/BrowserNotify.ts ***! \***************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar Log = __webpack_require__(/*! ../log */ \"./lib/log.ts\");\nfunction incomingBrowserNotify(xs) {\n return xs.pipe(map_1.map(function (event) { return Log.overlayInfo(event.message, event.timeout); }));\n}\nexports.incomingBrowserNotify = incomingBrowserNotify;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/BrowserNotify.ts?"); /***/ }), /***/ "./lib/messages/BrowserReload.ts": /*!***************************************!*\ !*** ./lib/messages/BrowserReload.ts ***! \***************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar mergeMap_1 = __webpack_require__(/*! rxjs/operators/mergeMap */ \"./node_modules/rxjs/operators/mergeMap.js\");\nvar concat_1 = __webpack_require__(/*! rxjs/observable/concat */ \"./node_modules/rxjs/observable/concat.js\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar browser_reload_effect_1 = __webpack_require__(/*! ../effects/browser-reload.effect */ \"./lib/effects/browser-reload.effect.ts\");\nvar subscribeOn_1 = __webpack_require__(/*! rxjs/operators/subscribeOn */ \"./node_modules/rxjs/operators/subscribeOn.js\");\nvar async_1 = __webpack_require__(/*! rxjs/scheduler/async */ \"./node_modules/rxjs/scheduler/async.js\");\nfunction incomingBrowserReload(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$), filter_1.filter(function (_a) {\n var event = _a[0], options = _a[1];\n return options.codeSync;\n }), mergeMap_1.mergeMap(reloadBrowserSafe));\n}\nexports.incomingBrowserReload = incomingBrowserReload;\nfunction reloadBrowserSafe() {\n return concat_1.concat(\n /**\n * Emit a warning message allowing others to do some work\n */\n of_1.of(browser_reload_effect_1.preBrowserReload()), \n /**\n * On the next tick, perform the reload\n */\n of_1.of(browser_reload_effect_1.browserReload()).pipe(subscribeOn_1.subscribeOn(async_1.async)));\n}\nexports.reloadBrowserSafe = reloadBrowserSafe;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/BrowserReload.ts?"); /***/ }), /***/ "./lib/messages/ClickEvent.ts": /*!************************************!*\ !*** ./lib/messages/ClickEvent.ts ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar simulate_click_effect_1 = __webpack_require__(/*! ../effects/simulate-click.effect */ \"./lib/effects/simulate-click.effect.ts\");\nfunction outgoing(data) {\n return [socket_messages_1.OutgoingSocketEvents.Click, data];\n}\nexports.outgoing = outgoing;\nfunction incomingHandler$(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"clicks\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\n var event = _a[0], canClick = _a[1], pathname = _a[2];\n return canClick && event.pathname === pathname;\n }), map_1.map(function (_a) {\n var event = _a[0];\n return simulate_click_effect_1.simulateClick(event);\n }));\n}\nexports.incomingHandler$ = incomingHandler$;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/ClickEvent.ts?"); /***/ }), /***/ "./lib/messages/Connection.ts": /*!************************************!*\ !*** ./lib/messages/Connection.ts ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar Log = __webpack_require__(/*! ../log */ \"./lib/log.ts\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar mergeMap_1 = __webpack_require__(/*! rxjs/operators/mergeMap */ \"./node_modules/rxjs/operators/mergeMap.js\");\nvar set_options_effect_1 = __webpack_require__(/*! ../effects/set-options.effect */ \"./lib/effects/set-options.effect.ts\");\nfunction incomingConnection(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"logPrefix\"))), mergeMap_1.mergeMap(function (_a) {\n var x = _a[0], logPrefix = _a[1];\n var prefix = logPrefix\n ? logPrefix + \": \"\n : '';\n return of_1.of(set_options_effect_1.setOptions(x), Log.overlayInfo(prefix + \"connected\"));\n }));\n}\nexports.incomingConnection = incomingConnection;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/Connection.ts?"); /***/ }), /***/ "./lib/messages/Disconnect.ts": /*!************************************!*\ !*** ./lib/messages/Disconnect.ts ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nfunction incomingDisconnect(xs) {\n return xs.pipe(tap_1.tap(function (x) { return console.log(x); }), ignoreElements_1.ignoreElements());\n}\nexports.incomingDisconnect = incomingDisconnect;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/Disconnect.ts?"); /***/ }), /***/ "./lib/messages/FileReload.ts": /*!************************************!*\ !*** ./lib/messages/FileReload.ts ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar empty_1 = __webpack_require__(/*! rxjs/observable/empty */ \"./node_modules/rxjs/observable/empty.js\");\nvar utils_1 = __webpack_require__(/*! ../utils */ \"./lib/utils.ts\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar mergeMap_1 = __webpack_require__(/*! rxjs/operators/mergeMap */ \"./node_modules/rxjs/operators/mergeMap.js\");\nvar file_reload_effect_1 = __webpack_require__(/*! ../effects/file-reload.effect */ \"./lib/effects/file-reload.effect.ts\");\nvar BrowserReload_1 = __webpack_require__(/*! ./BrowserReload */ \"./lib/messages/BrowserReload.ts\");\nfunction incomingFileReload(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$), filter_1.filter(function (_a) {\n var event = _a[0], options = _a[1];\n return options.codeSync;\n }), mergeMap_1.mergeMap(function (_a) {\n var event = _a[0], options = _a[1];\n if (event.url || !options.injectChanges) {\n return BrowserReload_1.reloadBrowserSafe();\n }\n if (event.basename && event.ext && utils_1.isBlacklisted(event)) {\n return empty_1.empty();\n }\n return of_1.of(file_reload_effect_1.fileReload(event));\n }));\n}\nexports.incomingFileReload = incomingFileReload;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/FileReload.ts?"); /***/ }), /***/ "./lib/messages/FormToggleEvent.ts": /*!*****************************************!*\ !*** ./lib/messages/FormToggleEvent.ts ***! \*****************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar set_element_toggle_value_effect_1 = __webpack_require__(/*! ../effects/set-element-toggle-value.effect */ \"./lib/effects/set-element-toggle-value.effect.ts\");\nfunction outgoing(element, props) {\n return [\n socket_messages_1.OutgoingSocketEvents.InputToggle,\n __assign({}, element, props)\n ];\n}\nexports.outgoing = outgoing;\nfunction incomingInputsToggles(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"forms\", \"toggles\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\n var toggles = _a[1];\n return toggles === true;\n }), map_1.map(function (_a) {\n var event = _a[0];\n return set_element_toggle_value_effect_1.setElementToggleValue(event);\n }));\n}\nexports.incomingInputsToggles = incomingInputsToggles;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/FormToggleEvent.ts?"); /***/ }), /***/ "./lib/messages/KeyupEvent.ts": /*!************************************!*\ !*** ./lib/messages/KeyupEvent.ts ***! \************************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar set_element_value_effect_1 = __webpack_require__(/*! ../effects/set-element-value.effect */ \"./lib/effects/set-element-value.effect.ts\");\nfunction outgoing(element, value) {\n return [\n socket_messages_1.OutgoingSocketEvents.Keyup,\n __assign({}, element, { value: value })\n ];\n}\nexports.outgoing = outgoing;\nfunction incomingKeyupHandler(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"forms\", \"inputs\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\n var event = _a[0], canKeyup = _a[1], pathname = _a[2];\n return canKeyup && event.pathname === pathname;\n }), map_1.map(function (_a) {\n var event = _a[0];\n return set_element_value_effect_1.setElementValue(event);\n }));\n}\nexports.incomingKeyupHandler = incomingKeyupHandler;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/KeyupEvent.ts?"); /***/ }), /***/ "./lib/messages/OptionsSet.ts": /*!************************************!*\ !*** ./lib/messages/OptionsSet.ts ***! \************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar set_options_effect_1 = __webpack_require__(/*! ../effects/set-options.effect */ \"./lib/effects/set-options.effect.ts\");\nfunction incomingOptionsSet(xs) {\n return xs.pipe(map_1.map(function (event) { return set_options_effect_1.setOptions(event.options); }));\n}\nexports.incomingOptionsSet = incomingOptionsSet;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/OptionsSet.ts?"); /***/ }), /***/ "./lib/messages/ScrollEvent.ts": /*!*************************************!*\ !*** ./lib/messages/ScrollEvent.ts ***! \*************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar socket_messages_1 = __webpack_require__(/*! ../socket-messages */ \"./lib/socket-messages.ts\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar effects_1 = __webpack_require__(/*! ../effects */ \"./lib/effects.ts\");\nfunction outgoing(data, tagName, index, mappingIndex) {\n if (mappingIndex === void 0) { mappingIndex = -1; }\n return [\n socket_messages_1.OutgoingSocketEvents.Scroll,\n { position: data, tagName: tagName, index: index, mappingIndex: mappingIndex }\n ];\n}\nexports.outgoing = outgoing;\nfunction incomingScrollHandler(xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.option$.pipe(pluck_1.pluck(\"ghostMode\", \"scroll\")), inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), filter_1.filter(function (_a) {\n var event = _a[0], canScroll = _a[1], pathname = _a[2];\n return canScroll && event.pathname === pathname;\n }), map_1.map(function (_a) {\n var event = _a[0];\n return [effects_1.EffectNames.BrowserSetScroll, event];\n }));\n}\nexports.incomingScrollHandler = incomingScrollHandler;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/messages/ScrollEvent.ts?"); /***/ }), /***/ "./lib/notify.ts": /*!***********************!*\ !*** ./lib/notify.ts ***! \***********************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar BehaviorSubject_1 = __webpack_require__(/*! rxjs/BehaviorSubject */ \"./node_modules/rxjs/BehaviorSubject.js\");\nvar styles = {\n display: \"none\",\n padding: \"15px\",\n fontFamily: \"sans-serif\",\n position: \"fixed\",\n fontSize: \"0.9em\",\n zIndex: 9999,\n right: 0,\n top: 0,\n borderBottomLeftRadius: \"5px\",\n backgroundColor: \"#1B2032\",\n margin: 0,\n color: \"white\",\n textAlign: \"center\",\n pointerEvents: \"none\"\n};\n/**\n * @param {IBrowserSyncOptions} options\n * @returns {BehaviorSubject}\n */\nfunction initNotify(options) {\n var cssStyles = styles;\n var elem;\n if (options.notify.styles) {\n if (Object.prototype.toString.call(options.notify.styles) ===\n \"[object Array]\") {\n // handle original array behavior, replace all styles with a joined copy\n cssStyles = options.notify.styles.join(\";\");\n }\n else {\n for (var key in options.notify.styles) {\n if (options.notify.styles.hasOwnProperty(key)) {\n cssStyles[key] = options.notify.styles[key];\n }\n }\n }\n }\n elem = document.createElement(\"DIV\");\n elem.id = \"__bs_notify__\";\n if (typeof cssStyles === \"string\") {\n elem.style.cssText = cssStyles;\n }\n else {\n for (var rule in cssStyles) {\n elem.style[rule] = cssStyles[rule];\n }\n }\n return new BehaviorSubject_1.BehaviorSubject(elem);\n}\nexports.initNotify = initNotify;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/notify.ts?"); /***/ }), /***/ "./lib/scroll-restore.ts": /*!*******************************!*\ !*** ./lib/scroll-restore.ts ***! \*******************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar _a;\nvar browser_utils_1 = __webpack_require__(/*! ./browser.utils */ \"./lib/browser.utils.ts\");\nvar effects_1 = __webpack_require__(/*! ./effects */ \"./lib/effects.ts\");\nvar BehaviorSubject_1 = __webpack_require__(/*! rxjs/BehaviorSubject */ \"./node_modules/rxjs/BehaviorSubject.js\");\nvar empty_1 = __webpack_require__(/*! rxjs/observable/empty */ \"./node_modules/rxjs/observable/empty.js\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar Log = __webpack_require__(/*! ./log */ \"./lib/log.ts\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar set_window_name_dom_effect_1 = __webpack_require__(/*! ./dom-effects/set-window-name.dom-effect */ \"./lib/dom-effects/set-window-name.dom-effect.ts\");\nvar set_scroll_dom_effect_1 = __webpack_require__(/*! ./dom-effects/set-scroll.dom-effect */ \"./lib/dom-effects/set-scroll.dom-effect.ts\");\nexports.PREFIX = \"<>\";\nexports.SUFFIX = \"<>\";\nexports.regex = new RegExp(exports.PREFIX + \"(.+?)\" + exports.SUFFIX, \"g\");\nfunction parseFromString(input) {\n var match;\n var last;\n while ((match = exports.regex.exec(input))) {\n last = match[1];\n }\n if (last) {\n return JSON.parse(last);\n }\n}\nfunction initWindowName(window) {\n var saved = (function () {\n /**\n * On page load, check window.name for an existing\n * BS json blob & parse it.\n */\n try {\n return parseFromString(window.name);\n }\n catch (e) {\n return {};\n }\n })();\n /**\n * Remove any existing BS json from window.name\n * to ensure we don't interfere with any other\n * libs who may be using it.\n */\n window.name = window.name.replace(exports.regex, \"\");\n /**\n * If the JSON was parsed correctly, try to\n * find a scroll property and restore it.\n */\n if (saved && saved.bs && saved.bs.hardReload && saved.bs.scroll) {\n var _a = saved.bs.scroll, x = _a.x, y = _a.y;\n return of_1.of(set_scroll_dom_effect_1.setScroll(x, y), Log.consoleDebug(\"[ScrollRestore] x = \" + x + \" y = \" + y));\n }\n return empty_1.empty();\n}\nexports.initWindowName = initWindowName;\nexports.scrollRestoreHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\n // [EffectNames.SetOptions]: (xs, inputs: Inputs) => {\n // return xs.pipe(\n // withLatestFrom(inputs.window$),\n // take(1),\n // mergeMap(([options, window]) => {\n // if (options.scrollRestoreTechnique === \"window.name\") {\n // return initWindowName(window);\n // }\n // return empty();\n // })\n // );\n // },\n /**\n * Save the current scroll position\n * before the browser is reloaded (via window.location.reload(true))\n * @param xs\n * @param {Inputs} inputs\n */\n _a[effects_1.EffectNames.PreBrowserReload] = function (xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.window$, inputs.document$), map_1.map(function (_a) {\n var window = _a[1], document = _a[2];\n return [\n window.name,\n exports.PREFIX,\n JSON.stringify({\n bs: {\n hardReload: true,\n scroll: browser_utils_1.getBrowserScrollPosition(window, document)\n }\n }),\n exports.SUFFIX\n ].join(\"\");\n }), map_1.map(function (value) { return set_window_name_dom_effect_1.setWindowName(value); }));\n },\n _a));\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/scroll-restore.ts?"); /***/ }), /***/ "./lib/socket-messages.ts": /*!********************************!*\ !*** ./lib/socket-messages.ts ***! \********************************/ /***/ (function(__unused_webpack_module, exports, __webpack_require__) { "use strict"; eval("\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar _a;\nvar BehaviorSubject_1 = __webpack_require__(/*! rxjs/BehaviorSubject */ \"./node_modules/rxjs/BehaviorSubject.js\");\nvar withLatestFrom_1 = __webpack_require__(/*! rxjs/operators/withLatestFrom */ \"./node_modules/rxjs/operators/withLatestFrom.js\");\nvar ignoreElements_1 = __webpack_require__(/*! rxjs/operators/ignoreElements */ \"./node_modules/rxjs/operators/ignoreElements.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar pluck_1 = __webpack_require__(/*! rxjs/operators/pluck */ \"./node_modules/rxjs/operators/pluck.js\");\nvar ScrollEvent_1 = __webpack_require__(/*! ./messages/ScrollEvent */ \"./lib/messages/ScrollEvent.ts\");\nvar ClickEvent_1 = __webpack_require__(/*! ./messages/ClickEvent */ \"./lib/messages/ClickEvent.ts\");\nvar KeyupEvent_1 = __webpack_require__(/*! ./messages/KeyupEvent */ \"./lib/messages/KeyupEvent.ts\");\nvar BrowserNotify_1 = __webpack_require__(/*! ./messages/BrowserNotify */ \"./lib/messages/BrowserNotify.ts\");\nvar BrowserLocation_1 = __webpack_require__(/*! ./messages/BrowserLocation */ \"./lib/messages/BrowserLocation.ts\");\nvar BrowserReload_1 = __webpack_require__(/*! ./messages/BrowserReload */ \"./lib/messages/BrowserReload.ts\");\nvar FileReload_1 = __webpack_require__(/*! ./messages/FileReload */ \"./lib/messages/FileReload.ts\");\nvar Connection_1 = __webpack_require__(/*! ./messages/Connection */ \"./lib/messages/Connection.ts\");\nvar Disconnect_1 = __webpack_require__(/*! ./messages/Disconnect */ \"./lib/messages/Disconnect.ts\");\nvar FormToggleEvent_1 = __webpack_require__(/*! ./messages/FormToggleEvent */ \"./lib/messages/FormToggleEvent.ts\");\nvar OptionsSet_1 = __webpack_require__(/*! ./messages/OptionsSet */ \"./lib/messages/OptionsSet.ts\");\nvar IncomingSocketNames;\n(function (IncomingSocketNames) {\n IncomingSocketNames[\"Connection\"] = \"connection\";\n IncomingSocketNames[\"Disconnect\"] = \"disconnect\";\n IncomingSocketNames[\"FileReload\"] = \"file:reload\";\n IncomingSocketNames[\"BrowserReload\"] = \"browser:reload\";\n IncomingSocketNames[\"BrowserLocation\"] = \"browser:location\";\n IncomingSocketNames[\"BrowserNotify\"] = \"browser:notify\";\n IncomingSocketNames[\"Scroll\"] = \"scroll\";\n IncomingSocketNames[\"Click\"] = \"click\";\n IncomingSocketNames[\"Keyup\"] = \"input:text\";\n IncomingSocketNames[\"InputToggle\"] = \"input:toggles\";\n IncomingSocketNames[\"OptionsSet\"] = \"options:set\";\n})(IncomingSocketNames = exports.IncomingSocketNames || (exports.IncomingSocketNames = {}));\nvar OutgoingSocketEvents;\n(function (OutgoingSocketEvents) {\n OutgoingSocketEvents[\"Scroll\"] = \"@@outgoing/scroll\";\n OutgoingSocketEvents[\"Click\"] = \"@@outgoing/click\";\n OutgoingSocketEvents[\"Keyup\"] = \"@@outgoing/keyup\";\n OutgoingSocketEvents[\"InputToggle\"] = \"@@outgoing/Toggle\";\n})(OutgoingSocketEvents = exports.OutgoingSocketEvents || (exports.OutgoingSocketEvents = {}));\nexports.socketHandlers$ = new BehaviorSubject_1.BehaviorSubject((_a = {},\n _a[IncomingSocketNames.Connection] = Connection_1.incomingConnection,\n _a[IncomingSocketNames.Disconnect] = Disconnect_1.incomingDisconnect,\n _a[IncomingSocketNames.FileReload] = FileReload_1.incomingFileReload,\n _a[IncomingSocketNames.BrowserReload] = BrowserReload_1.incomingBrowserReload,\n _a[IncomingSocketNames.BrowserLocation] = BrowserLocation_1.incomingBrowserLocation,\n _a[IncomingSocketNames.BrowserNotify] = BrowserNotify_1.incomingBrowserNotify,\n _a[IncomingSocketNames.Scroll] = ScrollEvent_1.incomingScrollHandler,\n _a[IncomingSocketNames.Click] = ClickEvent_1.incomingHandler$,\n _a[IncomingSocketNames.Keyup] = KeyupEvent_1.incomingKeyupHandler,\n _a[IncomingSocketNames.InputToggle] = FormToggleEvent_1.incomingInputsToggles,\n _a[IncomingSocketNames.OptionsSet] = OptionsSet_1.incomingOptionsSet,\n _a[OutgoingSocketEvents.Scroll] = emitWithPathname(IncomingSocketNames.Scroll),\n _a[OutgoingSocketEvents.Click] = emitWithPathname(IncomingSocketNames.Click),\n _a[OutgoingSocketEvents.Keyup] = emitWithPathname(IncomingSocketNames.Keyup),\n _a[OutgoingSocketEvents.InputToggle] = emitWithPathname(IncomingSocketNames.InputToggle),\n _a));\nfunction emitWithPathname(name) {\n return function (xs, inputs) {\n return xs.pipe(withLatestFrom_1.withLatestFrom(inputs.io$, inputs.window$.pipe(pluck_1.pluck(\"location\", \"pathname\"))), tap_1.tap(function (_a) {\n var event = _a[0], io = _a[1], pathname = _a[2];\n return io.emit(name, __assign({}, event, { pathname: pathname }));\n }), ignoreElements_1.ignoreElements());\n };\n}\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/socket-messages.ts?"); /***/ }), /***/ "./lib/socket.ts": /*!***********************!*\ !*** ./lib/socket.ts ***! \***********************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar socket = __webpack_require__(/*! socket.io-client */ \"./node_modules/socket.io-client/lib/index.js\");\nvar Observable_1 = __webpack_require__(/*! rxjs/Observable */ \"./node_modules/rxjs/Observable.js\");\nvar BehaviorSubject_1 = __webpack_require__(/*! rxjs/BehaviorSubject */ \"./node_modules/rxjs/BehaviorSubject.js\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar share_1 = __webpack_require__(/*! rxjs/operators/share */ \"./node_modules/rxjs/operators/share.js\");\n/**\n * Alias for socket.emit\n * @param name\n * @param data\n */\n// export function emit(name, data) {\n// if (io && io.emit) {\n// // send relative path of where the event is sent\n// data.url = window.location.pathname;\n// io.emit(name, data);\n// }\n// }\n//\n// /**\n// * Alias for socket.on\n// * @param name\n// * @param func\n// */\n// export function on(name, func) {\n// io.on(name, func);\n// }\nfunction initWindow() {\n return of_1.of(window);\n}\nexports.initWindow = initWindow;\nfunction initDocument() {\n return of_1.of(document);\n}\nexports.initDocument = initDocument;\nfunction initNavigator() {\n return of_1.of(navigator);\n}\nexports.initNavigator = initNavigator;\nfunction initOptions() {\n return new BehaviorSubject_1.BehaviorSubject(window.___browserSync___.options);\n}\nexports.initOptions = initOptions;\nfunction initSocket() {\n /**\n * @type {{emit: emit, on: on}}\n */\n var socketConfig = window.___browserSync___.socketConfig;\n var socketUrl = window.___browserSync___.socketUrl;\n var io = socket(socketUrl, socketConfig);\n var onevent = io.onevent;\n var socket$ = Observable_1.Observable.create(function (obs) {\n io.onevent = function (packet) {\n onevent.call(this, packet);\n obs.next(packet.data);\n };\n }).pipe(share_1.share());\n var io$ = new BehaviorSubject_1.BehaviorSubject(io);\n /**\n * *****BACK-COMPAT*******\n * Scripts that come after Browsersync may rely on the previous window.___browserSync___.socket\n */\n window.___browserSync___.socket = io;\n return { socket$: socket$, io$: io$ };\n}\nexports.initSocket = initSocket;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/socket.ts?"); /***/ }), /***/ "./lib/utils.ts": /*!**********************!*\ !*** ./lib/utils.ts ***! \**********************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar concat_1 = __webpack_require__(/*! rxjs/observable/concat */ \"./node_modules/rxjs/observable/concat.js\");\nvar timer_1 = __webpack_require__(/*! rxjs/observable/timer */ \"./node_modules/rxjs/observable/timer.js\");\nvar of_1 = __webpack_require__(/*! rxjs/observable/of */ \"./node_modules/rxjs/observable/of.js\");\nvar switchMap_1 = __webpack_require__(/*! rxjs/operators/switchMap */ \"./node_modules/rxjs/operators/switchMap.js\");\nvar startWith_1 = __webpack_require__(/*! rxjs/operators/startWith */ \"./node_modules/rxjs/operators/startWith.js\");\nvar mapTo_1 = __webpack_require__(/*! rxjs/operators/mapTo */ \"./node_modules/rxjs/operators/mapTo.js\");\nfunction each(incoming) {\n return [].slice.call(incoming || []);\n}\nexports.each = each;\nexports.splitUrl = function (url) {\n var hash, index, params;\n if ((index = url.indexOf(\"#\")) >= 0) {\n hash = url.slice(index);\n url = url.slice(0, index);\n }\n else {\n hash = \"\";\n }\n if ((index = url.indexOf(\"?\")) >= 0) {\n params = url.slice(index);\n url = url.slice(0, index);\n }\n else {\n params = \"\";\n }\n return { url: url, params: params, hash: hash };\n};\nexports.pathFromUrl = function (url) {\n var path;\n (url = exports.splitUrl(url).url);\n if (url.indexOf(\"file://\") === 0) {\n path = url.replace(new RegExp(\"^file://(localhost)?\"), \"\");\n }\n else {\n // http : // hostname :8080 /\n path = url.replace(new RegExp(\"^([^:]+:)?//([^:/]+)(:\\\\d*)?/\"), \"/\");\n }\n // decodeURI has special handling of stuff like semicolons, so use decodeURIComponent\n return decodeURIComponent(path);\n};\nexports.pickBestMatch = function (path, objects, pathFunc) {\n var score;\n var bestMatch = { score: 0, object: null };\n objects.forEach(function (object) {\n score = exports.numberOfMatchingSegments(path, pathFunc(object));\n if (score > bestMatch.score) {\n bestMatch = { object: object, score: score };\n }\n });\n if (bestMatch.score > 0) {\n return bestMatch;\n }\n else {\n return null;\n }\n};\nexports.numberOfMatchingSegments = function (path1, path2) {\n path1 = normalisePath(path1);\n path2 = normalisePath(path2);\n if (path1 === path2) {\n return 10000;\n }\n var comps1 = path1.split(\"/\").reverse();\n var comps2 = path2.split(\"/\").reverse();\n var len = Math.min(comps1.length, comps2.length);\n var eqCount = 0;\n while (eqCount < len && comps1[eqCount] === comps2[eqCount]) {\n ++eqCount;\n }\n return eqCount;\n};\nexports.pathsMatch = function (path1, path2) {\n return exports.numberOfMatchingSegments(path1, path2) > 0;\n};\nfunction getLocation(url) {\n var location = document.createElement(\"a\");\n location.href = url;\n if (location.host === \"\") {\n location.href = location.href;\n }\n return location;\n}\nexports.getLocation = getLocation;\n/**\n * @param {string} search\n * @param {string} key\n * @param {string} suffix\n */\nfunction updateSearch(search, key, suffix) {\n if (search === \"\") {\n return \"?\" + suffix;\n }\n return (\"?\" +\n search\n .slice(1)\n .split(\"&\")\n .map(function (item) {\n return item.split(\"=\");\n })\n .filter(function (tuple) {\n return tuple[0] !== key;\n })\n .map(function (item) {\n return [item[0], item[1]].join(\"=\");\n })\n .concat(suffix)\n .join(\"&\"));\n}\nexports.updateSearch = updateSearch;\nvar blacklist = [\n // never allow .map files through\n function (incoming) {\n return incoming.ext === \"map\";\n }\n];\n/**\n * @param incoming\n * @returns {boolean}\n */\nfunction isBlacklisted(incoming) {\n return blacklist.some(function (fn) {\n return fn(incoming);\n });\n}\nexports.isBlacklisted = isBlacklisted;\nfunction createTimedBooleanSwitch(source$, timeout) {\n if (timeout === void 0) { timeout = 1000; }\n return source$.pipe(switchMap_1.switchMap(function () {\n return concat_1.concat(of_1.of(false), timer_1.timer(timeout).pipe(mapTo_1.mapTo(true)));\n }), startWith_1.startWith(true));\n}\nexports.createTimedBooleanSwitch = createTimedBooleanSwitch;\nfunction array(incoming) {\n return [].slice.call(incoming);\n}\nexports.array = array;\nfunction normalisePath(path) {\n return path\n .replace(/^\\/+/, \"\")\n .replace(/\\\\/g, \"/\")\n .toLowerCase();\n}\nexports.normalisePath = normalisePath;\n\n\n//# sourceURL=webpack://browser-sync-client/./lib/utils.ts?"); /***/ }), /***/ "./vendor/Reloader.ts": /*!****************************!*\ !*** ./vendor/Reloader.ts ***! \****************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n *\n * With thanks to https://github.com/livereload/livereload-js\n * :) :) :)\n *\n */\nvar utils_1 = __webpack_require__(/*! ../lib/utils */ \"./lib/utils.ts\");\nvar empty_1 = __webpack_require__(/*! rxjs/observable/empty */ \"./node_modules/rxjs/observable/empty.js\");\nvar Observable_1 = __webpack_require__(/*! rxjs/Observable */ \"./node_modules/rxjs/Observable.js\");\nvar merge_1 = __webpack_require__(/*! rxjs/observable/merge */ \"./node_modules/rxjs/observable/merge.js\");\nvar timer_1 = __webpack_require__(/*! rxjs/observable/timer */ \"./node_modules/rxjs/observable/timer.js\");\nvar from_1 = __webpack_require__(/*! rxjs/observable/from */ \"./node_modules/rxjs/observable/from.js\");\nvar filter_1 = __webpack_require__(/*! rxjs/operators/filter */ \"./node_modules/rxjs/operators/filter.js\");\nvar map_1 = __webpack_require__(/*! rxjs/operators/map */ \"./node_modules/rxjs/operators/map.js\");\nvar mergeMap_1 = __webpack_require__(/*! rxjs/operators/mergeMap */ \"./node_modules/rxjs/operators/mergeMap.js\");\nvar tap_1 = __webpack_require__(/*! rxjs/operators/tap */ \"./node_modules/rxjs/operators/tap.js\");\nvar mapTo_1 = __webpack_require__(/*! rxjs/operators/mapTo */ \"./node_modules/rxjs/operators/mapTo.js\");\nvar prop_set_dom_effect_1 = __webpack_require__(/*! ../lib/dom-effects/prop-set.dom-effect */ \"./lib/dom-effects/prop-set.dom-effect.ts\");\nvar style_set_dom_effect_1 = __webpack_require__(/*! ../lib/dom-effects/style-set.dom-effect */ \"./lib/dom-effects/style-set.dom-effect.ts\");\nvar link_replace_dom_effect_1 = __webpack_require__(/*! ../lib/dom-effects/link-replace.dom-effect */ \"./lib/dom-effects/link-replace.dom-effect.ts\");\nvar mergeAll_1 = __webpack_require__(/*! rxjs/operators/mergeAll */ \"./node_modules/rxjs/operators/mergeAll.js\");\nvar hiddenElem;\nvar IMAGE_STYLES = [\n { selector: 'background', styleNames: ['backgroundImage'] },\n { selector: 'border', styleNames: ['borderImage', 'webkitBorderImage', 'MozBorderImage'] }\n];\nvar attrs = {\n link: \"href\",\n img: \"src\",\n script: \"src\"\n};\nfunction reload(document, navigator) {\n return function (data, options) {\n var path = data.path;\n if (options.liveCSS) {\n if (path.match(/\\.css$/i)) {\n return reloadStylesheet(path, document, navigator);\n }\n }\n if (options.liveImg) {\n if (path.match(/\\.(jpe?g|png|gif)$/i)) {\n return reloadImages(path, document);\n }\n }\n /**\n * LEGACY\n */\n var domData = getElems(data.ext, options, document);\n var elems = getMatches(domData.elems, data.basename, domData.attr);\n for (var i = 0, n = elems.length; i < n; i += 1) {\n swapFile(elems[i], domData, options, document, navigator);\n }\n return empty_1.empty();\n };\n function getMatches(elems, url, attr) {\n if (url[0] === \"*\") {\n return elems;\n }\n var matches = [];\n var urlMatcher = new RegExp(\"(^|/)\" + url);\n for (var i = 0, len = elems.length; i < len; i += 1) {\n if (urlMatcher.test(elems[i][attr])) {\n matches.push(elems[i]);\n }\n }\n return matches;\n }\n function getElems(fileExtension, options, document) {\n var tagName = options.tagNames[fileExtension];\n var attr = attrs[tagName];\n return {\n attr: attr,\n tagName: tagName,\n elems: document.getElementsByTagName(tagName)\n };\n }\n function reloadImages(path, document) {\n var expando = generateUniqueString(Date.now());\n return merge_1.merge(from_1.from([].slice.call(document.images))\n .pipe(filter_1.filter(function (img) { return utils_1.pathsMatch(path, utils_1.pathFromUrl(img.src)); }), map_1.map(function (img) {\n var payload = {\n target: img,\n prop: 'src',\n value: generateCacheBustUrl(img.src, expando),\n pathname: utils_1.getLocation(img.src).pathname\n };\n return prop_set_dom_effect_1.propSet(payload);\n })), from_1.from(IMAGE_STYLES)\n .pipe(mergeMap_1.mergeMap(function (_a) {\n var selector = _a.selector, styleNames = _a.styleNames;\n return from_1.from(document.querySelectorAll(\"[style*=\" + selector + \"]\")).pipe(mergeMap_1.mergeMap(function (img) {\n return reloadStyleImages(img.style, styleNames, path, expando);\n }));\n })));\n // if (document.styleSheets) {\n // return [].slice.call(document.styleSheets)\n // .map((styleSheet) => {\n // return reloadStylesheetImages(styleSheet, path, expando);\n // });\n // }\n }\n function reloadStylesheetImages(styleSheet, path, expando) {\n var rules;\n try {\n rules = styleSheet != null ? styleSheet.cssRules : undefined;\n }\n catch (e) { }\n //\n if (!rules) {\n return;\n }\n [].slice.call(rules).forEach(function (rule) {\n switch (rule.type) {\n case CSSRule.IMPORT_RULE:\n reloadStylesheetImages(rule.styleSheet, path, expando);\n break;\n case CSSRule.STYLE_RULE:\n [].slice.call(IMAGE_STYLES).forEach(function (_a) {\n var styleNames = _a.styleNames;\n reloadStyleImages(rule.style, styleNames, path, expando);\n });\n break;\n case CSSRule.MEDIA_RULE:\n reloadStylesheetImages(rule, path, expando);\n break;\n }\n });\n }\n function reloadStyleImages(style, styleNames, path, expando) {\n return from_1.from(styleNames).pipe(filter_1.filter(function (styleName) { return typeof style[styleName] === 'string'; }), map_1.map(function (styleName) {\n var pathName;\n var value = style[styleName];\n var newValue = value.replace(new RegExp(\"\\\\burl\\\\s*\\\\(([^)]*)\\\\)\"), function (match, src) {\n var _src = src;\n if (src[0] === '\"' && src[src.length - 1] === '\"') {\n _src = src.slice(1, -1);\n }\n pathName = utils_1.getLocation(_src).pathname;\n if (utils_1.pathsMatch(path, utils_1.pathFromUrl(_src))) {\n return \"url(\" + generateCacheBustUrl(_src, expando) + \")\";\n }\n else {\n return match;\n }\n });\n return [\n style,\n styleName,\n value,\n newValue,\n pathName\n ];\n }), filter_1.filter(function (_a) {\n var style = _a[0], styleName = _a[1], value = _a[2], newValue = _a[3];\n return newValue !== value;\n }), map_1.map(function (_a) {\n var style = _a[0], styleName = _a[1], value = _a[2], newValue = _a[3], pathName = _a[4];\n return style_set_dom_effect_1.styleSet({ style: style, styleName: styleName, value: value, newValue: newValue, pathName: pathName });\n }));\n }\n function swapFile(elem, domData, options, document, navigator) {\n var attr = domData.attr;\n var currentValue = elem[attr];\n var timeStamp = new Date().getTime();\n var key = \"browsersync-legacy\";\n var suffix = key + \"=\" + timeStamp;\n var anchor = utils_1.getLocation(currentValue);\n var search = utils_1.updateSearch(anchor.search, key, suffix);\n switch (domData.tagName) {\n case 'link': {\n // this.logger.trace(`replacing LINK ${attr}`);\n reloadStylesheet(currentValue, document, navigator);\n break;\n }\n case 'img': {\n reloadImages(currentValue, document);\n break;\n }\n default: {\n if (options.timestamps === false) {\n elem[attr] = anchor.href;\n }\n else {\n elem[attr] = anchor.href.split(\"?\")[0] + search;\n }\n // this.logger.info(`reloading ${elem[attr]}`);\n setTimeout(function () {\n if (!hiddenElem) {\n hiddenElem = document.createElement(\"DIV\");\n document.body.appendChild(hiddenElem);\n }\n else {\n hiddenElem.style.display = \"none\";\n hiddenElem.style.display = \"block\";\n }\n }, 200);\n }\n }\n return {\n elem: elem,\n timeStamp: timeStamp\n };\n }\n function reattachStylesheetLink(link, document, navigator) {\n // ignore LINKs that will be removed by LR soon\n var clone;\n if (link.__LiveReload_pendingRemoval) {\n return empty_1.empty();\n }\n link.__LiveReload_pendingRemoval = true;\n if (link.tagName === 'STYLE') {\n // prefixfree\n clone = document.createElement('link');\n clone.rel = 'stylesheet';\n clone.media = link.media;\n clone.disabled = link.disabled;\n }\n else {\n clone = link.cloneNode(false);\n }\n var prevHref = link.href;\n var nextHref = generateCacheBustUrl(linkHref(link));\n clone.href = nextHref;\n var pathname = utils_1.getLocation(nextHref).pathname;\n var basename = pathname.split('/').slice(-1)[0];\n // insert the new LINK before the old one\n var parent = link.parentNode;\n if (parent.lastChild === link) {\n parent.appendChild(clone);\n }\n else {\n parent.insertBefore(clone, link.nextSibling);\n }\n var additionalWaitingTime;\n if (/AppleWebKit/.test(navigator.userAgent)) {\n additionalWaitingTime = 5;\n }\n else {\n additionalWaitingTime = 200;\n }\n return Observable_1.Observable.create(function (obs) {\n clone.onload = function () {\n obs.next(true);\n obs.complete();\n };\n })\n .pipe(mergeMap_1.mergeMap(function () {\n return timer_1.timer(additionalWaitingTime)\n .pipe(tap_1.tap(function () {\n if (link && !link.parentNode) {\n return;\n }\n link.parentNode.removeChild(link);\n clone.onreadystatechange = null;\n }), mapTo_1.mapTo(link_replace_dom_effect_1.linkReplace({ target: clone, nextHref: nextHref, prevHref: prevHref, pathname: pathname, basename: basename })));\n }));\n }\n function reattachImportedRule(_a, document) {\n var rule = _a.rule, index = _a.index, link = _a.link;\n var parent = rule.parentStyleSheet;\n var href = generateCacheBustUrl(rule.href);\n var media = rule.media.length ? [].join.call(rule.media, ', ') : '';\n var newRule = \"@import url(\\\"\" + href + \"\\\") \" + media + \";\";\n // used to detect if reattachImportedRule has been called again on the same rule\n rule.__LiveReload_newHref = href;\n // WORKAROUND FOR WEBKIT BUG: WebKit resets all styles if we add @import'ed\n // stylesheet that hasn't been cached yet. Workaround is to pre-cache the\n // stylesheet by temporarily adding it as a LINK tag.\n var tempLink = document.createElement(\"link\");\n tempLink.rel = 'stylesheet';\n tempLink.href = href;\n tempLink.__LiveReload_pendingRemoval = true; // exclude from path matching\n if (link.parentNode) {\n link.parentNode.insertBefore(tempLink, link);\n }\n return timer_1.timer(200)\n .pipe(tap_1.tap(function () {\n if (tempLink.parentNode) {\n tempLink.parentNode.removeChild(tempLink);\n }\n // if another reattachImportedRule call is in progress, abandon this one\n if (rule.__LiveReload_newHref !== href) {\n return;\n }\n parent.insertRule(newRule, index);\n parent.deleteRule(index + 1);\n // save the new rule, so that we can detect another reattachImportedRule call\n rule = parent.cssRules[index];\n rule.__LiveReload_newHref = href;\n }), mergeMap_1.mergeMap(function () {\n return timer_1.timer(200).pipe(tap_1.tap(function () {\n // if another reattachImportedRule call is in progress, abandon this one\n if (rule.__LiveReload_newHref !== href) {\n return;\n }\n parent.insertRule(newRule, index);\n return parent.deleteRule(index + 1);\n }));\n }));\n }\n function generateCacheBustUrl(url, expando) {\n if (expando === void 0) { expando = generateUniqueString(Date.now()); }\n var _a;\n var hash, oldParams;\n (_a = utils_1.splitUrl(url), url = _a.url, hash = _a.hash, oldParams = _a.params);\n // if (this.options.overrideURL) {\n // if (url.indexOf(this.options.serverURL) < 0) {\n // const originalUrl = url;\n // url = this.options.serverURL + this.options.overrideURL + \"?url=\" + encodeURIComponent(url);\n // this.logger.debug(`overriding source URL ${originalUrl} with ${url}`);\n // }\n // }\n var params = oldParams.replace(/(\\?|&)browsersync=(\\d+)/, function (match, sep) { return \"\" + sep + expando; });\n if (params === oldParams) {\n if (oldParams.length === 0) {\n params = \"?\" + expando;\n }\n else {\n params = oldParams + \"&\" + expando;\n }\n }\n return url + params + hash;\n }\n function reloadStylesheet(path, document, navigator) {\n // has to be a real array, because DOMNodeList will be modified\n var links = utils_1.array(document.getElementsByTagName('link'))\n .filter(function (link) {\n return link.rel.match(/^stylesheet$/i)\n && !link.__LiveReload_pendingRemoval;\n });\n /**\n * Find imported style sheets in