{"version":3,"file":"meiosis-tracer.min.js","mappings":"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","sources":["webpack://meiosisTracer/webpack/universalModuleDefinition","webpack://meiosisTracer/webpack/bootstrap","webpack://meiosisTracer/webpack/runtime/define property getters","webpack://meiosisTracer/webpack/runtime/hasOwnProperty shorthand","webpack://meiosisTracer/./src/trace.js","webpack://meiosisTracer/./src/constants.js","webpack://meiosisTracer/./src/updateView.js","webpack://meiosisTracer/./src/tracer.js","webpack://meiosisTracer/./src/index.js","webpack://meiosisTracer/./src/meiosis-tracer.js","webpack://meiosisTracer/./src/settingsView.js","webpack://meiosisTracer/./src/streamView.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"meiosisTracer\"] = factory();\n\telse\n\t\troot[\"meiosisTracer\"] = factory();\n})(this, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","const isMeiosisTracerOn = () => window && window['__MEIOSIS_TRACER_GLOBAL_HOOK__'];\n\n/*\nChanges to a stream are sent to the tracer.\n\nStream values received from the tracer are pushed onto the stream.\n\nThey are either sent back or not according to the flag issued by the tracer:\n- When auto-sent using the slider, do not send values back.\n- When sent using the Send button, send values back; they can either be added\n to the history or not, according to a checkbox.\n\nMessages:\n\n- MEIOSIS_TRACER_INIT: received from the UI to initialize\n- MEIOSIS_PING: sent to the UI in case we missed the INIT message, asks the UI to send INIT\n- MEIOSIS_STREAM_OPTIONS: sent to the UI to initialize streams and options\n- MEIOSIS_STREAM_VALUE: sent to the UI to indicate a new stream value\n- MEIOSIS_TRIGGER_STREAM_VALUE: received from the UI to push a value onto a stream\n\nParameters:\n\n- streams: [ ] // each item either a stream, or\n { stream, label, hist, hide, stringify, parse, listen, emit }\n- stringify (optional): Function // default is obj => JSON.stringify(obj, null, 4)\n- parse (optional): Function // default is str => JSON.parse(str)\n- listen (optional): Function // default is (stream, fn) => stream.map(fn)\n- emit (optional): Function // default is (stream, value) => stream(value)\n*/\nexport const trace = ({\n streams = [],\n stringify = (obj) => JSON.stringify(obj, null, 4),\n parse = (str) => JSON.parse(str),\n listen = (stream, fn) => stream.map(fn),\n emit = (stream, value) => stream(value),\n direction = 'column',\n rows = 15,\n cols = 50,\n autoSend = true\n}) => {\n if (!isMeiosisTracerOn()) {\n return;\n }\n const bufferedStreamValues = [];\n let devtoolInitialized = false;\n\n const streamObjs = [];\n\n for (let i = 0, t = streams.length; i < t; i++) {\n const defaultLabel = 'Stream ' + i;\n if (streams[i].stream) {\n streams[i].label = streams[i].label || defaultLabel;\n streamObjs.push(streams[i]);\n } else {\n streamObjs.push({ stream: streams[i], label: defaultLabel });\n }\n }\n\n streamObjs.forEach(({ stream }, index) => {\n listen(stream, (value) => {\n const data = { type: 'MEIOSIS_STREAM_VALUE', index, value: stringify(value) };\n\n if (devtoolInitialized) {\n window.postMessage(data, '*');\n } else {\n bufferedStreamValues.push(data);\n }\n });\n });\n\n window.addEventListener('message', (evt) => {\n if (evt.data.type === 'MEIOSIS_TRACER_INIT') {\n const streamOptions = [];\n streamObjs.forEach((streamObj) => {\n const streamOpt = {};\n Object.keys(streamObj).forEach((key) => {\n if (key !== 'stream') {\n streamOpt[key] = streamObj[key];\n }\n });\n streamOptions.push(streamOpt);\n });\n const params = {\n streamOptions,\n direction,\n rows,\n cols,\n autoSend\n };\n window.postMessage({ type: 'MEIOSIS_STREAM_OPTIONS', value: params }, '*');\n devtoolInitialized = true;\n bufferedStreamValues.forEach((data) => window.postMessage(data, '*'));\n bufferedStreamValues.length = 0;\n } else if (evt.data.type === 'MEIOSIS_TRIGGER_STREAM_VALUE') {\n const { index, value } = evt.data;\n emit(streamObjs[index].stream, parse(value));\n }\n });\n\n // Send ping in case tracer was already loaded and we missed the MEIOSIS_TRACER_INIT message.\n window.postMessage({ type: 'MEIOSIS_PING' }, '*');\n};\n","export const rowsId = 'tracerRows';\nexport const colsId = 'tracerCols';\nexport const streamContainerId = 'tracerStreamContainer';\nexport const settingsContainerId = 'tracerSettingsContainer';\nexport const hideTracerId = 'tracerHide';\nexport const showTracerId = 'tracerShow';\nexport const autoId = 'traceAutoSend';\n\nexport const streamId = (index) => 'tracerStreamBox_ ' + index;\nexport const hiddenStreamId = (index) => 'tracerStreamBoxHidden_' + index;\nexport const hideStreamId = (index) => 'tracerStreamHide_' + index;\nexport const showStreamId = (index) => 'tracerStreamShow_' + index;\nexport const modelId = (index) => 'tracerModel_' + index;\nexport const sliderId = (index) => 'tracerSlider_' + index;\nexport const stepBackId = (index) => 'tracerStepBack_' + index;\nexport const stepForwardId = (index) => 'tracerStepForward_' + index;\nexport const sliderValueId = (index) => 'tracerSliderValue_' + index;\nexport const sendId = (index) => 'tracerSend_' + index;\nexport const resetId = (index) => 'tracerReset_' + index;\nexport const histId = (index) => 'tracerAccumulateHistory_' + index;\n","import * as C from './constants';\n\nexport const updateView = ({ index, model, value, max }) => {\n document.getElementById(C.modelId(index)).value = model;\n\n if (max != null) {\n document.getElementById(C.sliderId(index)).max = max;\n }\n\n document.getElementById(C.sliderId(index)).value = value;\n document.getElementById(C.sliderValueId(index)).innerHTML = value;\n\n document.getElementById(C.stepBackId(index)).disabled = value <= 0;\n document.getElementById(C.stepForwardId(index)).disabled =\n value == document.getElementById(C.sliderId(index)).max;\n};\n","import { streamView } from './streamView';\nimport { updateView } from './updateView';\nimport { settingsView, initializeResizeChangeDirection } from './settingsView';\nimport * as C from './constants';\n\nwindow['__MEIOSIS_TRACER_GLOBAL_HOOK__'] = true;\nconst states = [];\nconst accumulateHistory = [];\n\nexport const tracer = ({\n selector,\n sendTracerInit,\n triggerStreamValue,\n theme = 'light'\n}) => {\n const target = document.querySelector(selector);\n\n if (!target) {\n return;\n }\n\n target.classList.add(`theme-${theme}`);\n\n let containerStyle = null;\n\n if (sendTracerInit == null) {\n sendTracerInit = () => {\n window.postMessage({ type: 'MEIOSIS_TRACER_INIT' }, '*');\n };\n }\n\n if (triggerStreamValue == null) {\n triggerStreamValue = (index, value) => {\n window.postMessage({ type: 'MEIOSIS_TRIGGER_STREAM_VALUE', index, value }, '*');\n };\n }\n\n const receiveStreamOptions = ({ streamOptions, direction, rows, cols, autoSend }) => {\n if (target.lastChild) {\n return;\n }\n const settingsListeners = {\n onHideTracer: () => {\n const container = document.getElementById(C.streamContainerId);\n containerStyle = container.style;\n container.style = 'display:none';\n\n document.getElementById(C.settingsContainerId).style = 'display:none';\n document.getElementById(C.showTracerId).style = '';\n },\n onShowTracer: () => {\n document.getElementById(C.streamContainerId).style = containerStyle;\n\n document.getElementById(C.settingsContainerId).style = '';\n document.getElementById(C.showTracerId).style = 'display:none';\n },\n onRowsColsChange: (rows, cols) => {\n for (let i = 0; i < streamOptions.length; i++) {\n const textarea = document.getElementById(C.modelId(i));\n textarea.rows = rows;\n textarea.cols = cols;\n }\n },\n onDirectionChange: (direction) => {\n document.getElementById(C.streamContainerId).style =\n 'display:flex;flex-direction:' + direction;\n },\n onAutoChange: (auto) => {\n autoSend = auto;\n }\n };\n const settings = document.createElement('div');\n target.append(settings);\n settingsView({\n element: settings,\n listeners: settingsListeners,\n direction,\n rows,\n cols,\n autoSend\n });\n\n const container = document.createElement('div');\n container.id = C.streamContainerId;\n container.style = 'display:flex;flex-direction:column';\n target.append(container);\n\n const sendStreamValue = (index, model) => {\n if (autoSend) {\n accumulateHistory[index] = false;\n document.getElementById(C.histId(index)).checked = false;\n triggerStreamValue(index, model);\n }\n };\n\n for (let index = 0; index < streamOptions.length; index++) {\n const { label, hist, hide } = streamOptions[index];\n states.push({ history: [], value: -1 });\n accumulateHistory.push(hist === false ? false : true);\n\n const listeners = {\n onSliderChange: (value) => {\n const state = states[index];\n const model = state.history[value];\n state.value = value;\n\n updateView({ index, model, value });\n sendStreamValue(index, model);\n },\n onStepBack: () => {\n const state = states[index];\n state.value = state.value - 1;\n const model = state.history[state.value];\n\n updateView({ index, model, value: state.value });\n sendStreamValue(index, model);\n },\n onStepForward: () => {\n const state = states[index];\n state.value = state.value + 1;\n const model = state.history[state.value];\n\n updateView({ index, model, value: state.value });\n sendStreamValue(index, model);\n },\n onSend: (value) => {\n triggerStreamValue(index, value);\n },\n onReset: () => {\n const state = states[index];\n state.history.length = 0;\n state.value = -1;\n\n updateView({ index, model: '', value: state.value, max: state.value });\n },\n onHistChange: (index, hist) => {\n accumulateHistory[index] = hist;\n }\n };\n\n const element = document.createElement('div');\n element.style = 'flex-grow:1';\n container.append(element);\n\n streamView({ element, index, listeners, label, rows, cols, hist, hide });\n }\n\n initializeResizeChangeDirection(settingsListeners, direction);\n };\n\n const receiveStreamValue = (index, model) => {\n if (accumulateHistory[index]) {\n const state = states[index];\n\n if (state.history.length > 0) {\n state.history.length = state.value + 1;\n }\n state.history.push(model);\n state.value = state.history.length - 1;\n\n updateView({ index, model, value: state.value, max: state.history.length - 1 });\n }\n };\n\n window.addEventListener('message', (evt) => {\n if (evt.data.type === 'MEIOSIS_STREAM_OPTIONS') {\n receiveStreamOptions(evt.data.value);\n } else if (evt.data.type === 'MEIOSIS_STREAM_VALUE') {\n receiveStreamValue(evt.data.index, evt.data.value);\n }\n });\n\n sendTracerInit();\n\n return {\n receiveStreamOptions,\n receiveStreamValue\n };\n};\n","import { meiosisTracer } from './meiosis-tracer';\n\nexport default meiosisTracer;\n","import { trace } from './trace';\nimport { tracer } from './tracer';\n\nexport const meiosisTracer = (params) => {\n if (params.streams != null) {\n trace(params);\n }\n if (params.selector != null) {\n return tracer(params);\n }\n};\n","import * as C from './constants';\n\nexport const settingsView = ({ element, listeners, direction, rows, cols, autoSend }) => {\n element.innerHTML = `\n