UNPKG

@coriolis/dev-tools

Version:
1,626 lines (1,480 loc) 115 kB
import { e as eventList, a as eventListFilter, l as lastPayloadOfType, t as timingTypeSelected, s as selectedEventListItem, b as eventListSelectedEvent, c as eventListFilterChange, d as currentViewName, v as viewChanged, _ as _toConsumableArray, i as isDevtoolsOpen, f as devtoolsClosed, g as viewList, p as panelWidthChanged, h as currentStoreSnapshot, j as projectionsList, k as eventTypeList, m as devtoolsOpened, n as enabledViewName } from './index-e202c247.js'; function noop() { } function assign(tar, src) { // @ts-ignore for (const k in src) tar[k] = src[k]; return tar; } function run(fn) { return fn(); } function blank_object() { return Object.create(null); } function run_all(fns) { fns.forEach(run); } function is_function(thing) { return typeof thing === 'function'; } function safe_not_equal(a, b) { return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); } function subscribe(store, ...callbacks) { if (store == null) { return noop; } const unsub = store.subscribe(...callbacks); return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; } function component_subscribe(component, store, callback) { component.$$.on_destroy.push(subscribe(store, callback)); } function create_slot(definition, ctx, $$scope, fn) { if (definition) { const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); return definition[0](slot_ctx); } } function get_slot_context(definition, ctx, $$scope, fn) { return definition[1] && fn ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) : $$scope.ctx; } function get_slot_changes(definition, $$scope, dirty, fn) { if (definition[2] && fn) { const lets = definition[2](fn(dirty)); if ($$scope.dirty === undefined) { return lets; } if (typeof lets === 'object') { const merged = []; const len = Math.max($$scope.dirty.length, lets.length); for (let i = 0; i < len; i += 1) { merged[i] = $$scope.dirty[i] | lets[i]; } return merged; } return $$scope.dirty | lets; } return $$scope.dirty; } function update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) { const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn); if (slot_changes) { const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); slot.p(slot_context, slot_changes); } } function exclude_internal_props(props) { const result = {}; for (const k in props) if (k[0] !== '$') result[k] = props[k]; return result; } function action_destroyer(action_result) { return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; } function append(target, node) { target.appendChild(node); } function insert(target, node, anchor) { target.insertBefore(node, anchor || null); } function detach(node) { node.parentNode.removeChild(node); } function element(name) { return document.createElement(name); } function text(data) { return document.createTextNode(data); } function space() { return text(' '); } function empty() { return text(''); } function listen(node, event, handler, options) { node.addEventListener(event, handler, options); return () => node.removeEventListener(event, handler, options); } function stop_propagation(fn) { return function (event) { event.stopPropagation(); // @ts-ignore return fn.call(this, event); }; } function attr(node, attribute, value) { if (value == null) node.removeAttribute(attribute); else if (node.getAttribute(attribute) !== value) node.setAttribute(attribute, value); } function set_custom_element_data(node, prop, value) { if (prop in node) { node[prop] = value; } else { attr(node, prop, value); } } function children(element) { return Array.from(element.childNodes); } function set_data(text, data) { data = '' + data; if (text.wholeText !== data) text.data = data; } function set_style(node, key, value, important) { node.style.setProperty(key, value, important ? 'important' : ''); } // unfortunately this can't be a constant as that wouldn't be tree-shakeable // so we cache the result instead let crossorigin; function is_crossorigin() { if (crossorigin === undefined) { crossorigin = false; try { if (typeof window !== 'undefined' && window.parent) { void window.parent.document; } } catch (error) { crossorigin = true; } } return crossorigin; } function add_resize_listener(node, fn) { const computed_style = getComputedStyle(node); const z_index = (parseInt(computed_style.zIndex) || 0) - 1; if (computed_style.position === 'static') { node.style.position = 'relative'; } const iframe = element('iframe'); iframe.setAttribute('style', `display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ` + `overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: ${z_index};`); iframe.setAttribute('aria-hidden', 'true'); iframe.tabIndex = -1; const crossorigin = is_crossorigin(); let unsubscribe; if (crossorigin) { iframe.src = `data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}</script>`; unsubscribe = listen(window, 'message', (event) => { if (event.source === iframe.contentWindow) fn(); }); } else { iframe.src = 'about:blank'; iframe.onload = () => { unsubscribe = listen(iframe.contentWindow, 'resize', fn); }; } append(node, iframe); return () => { if (crossorigin) { unsubscribe(); } else if (unsubscribe && iframe.contentWindow) { unsubscribe(); } detach(iframe); }; } function toggle_class(element, name, toggle) { element.classList[toggle ? 'add' : 'remove'](name); } let current_component; function set_current_component(component) { current_component = component; } function get_current_component() { if (!current_component) throw new Error(`Function called outside component initialization`); return current_component; } function onMount(fn) { get_current_component().$$.on_mount.push(fn); } function setContext(key, context) { get_current_component().$$.context.set(key, context); } function getContext(key) { return get_current_component().$$.context.get(key); } // TODO figure out if we still want to support // shorthand events, or if we want to implement // a real bubbling mechanism function bubble(component, event) { const callbacks = component.$$.callbacks[event.type]; if (callbacks) { callbacks.slice().forEach(fn => fn(event)); } } const dirty_components = []; const binding_callbacks = []; const render_callbacks = []; const flush_callbacks = []; const resolved_promise = Promise.resolve(); let update_scheduled = false; function schedule_update() { if (!update_scheduled) { update_scheduled = true; resolved_promise.then(flush); } } function tick() { schedule_update(); return resolved_promise; } function add_render_callback(fn) { render_callbacks.push(fn); } let flushing = false; const seen_callbacks = new Set(); function flush() { if (flushing) return; flushing = true; do { // first, call beforeUpdate functions // and update components for (let i = 0; i < dirty_components.length; i += 1) { const component = dirty_components[i]; set_current_component(component); update(component.$$); } dirty_components.length = 0; while (binding_callbacks.length) binding_callbacks.pop()(); // then, once components are updated, call // afterUpdate functions. This may cause // subsequent updates... for (let i = 0; i < render_callbacks.length; i += 1) { const callback = render_callbacks[i]; if (!seen_callbacks.has(callback)) { // ...so guard against infinite loops seen_callbacks.add(callback); callback(); } } render_callbacks.length = 0; } while (dirty_components.length); while (flush_callbacks.length) { flush_callbacks.pop()(); } update_scheduled = false; flushing = false; seen_callbacks.clear(); } function update($$) { if ($$.fragment !== null) { $$.update(); run_all($$.before_update); const dirty = $$.dirty; $$.dirty = [-1]; $$.fragment && $$.fragment.p($$.ctx, dirty); $$.after_update.forEach(add_render_callback); } } const outroing = new Set(); let outros; function group_outros() { outros = { r: 0, c: [], p: outros // parent group }; } function check_outros() { if (!outros.r) { run_all(outros.c); } outros = outros.p; } function transition_in(block, local) { if (block && block.i) { outroing.delete(block); block.i(local); } } function transition_out(block, local, detach, callback) { if (block && block.o) { if (outroing.has(block)) return; outroing.add(block); outros.c.push(() => { outroing.delete(block); if (callback) { if (detach) block.d(1); callback(); } }); block.o(local); } } const globals = (typeof window !== 'undefined' ? window : typeof globalThis !== 'undefined' ? globalThis : global); function outro_and_destroy_block(block, lookup) { transition_out(block, 1, 1, () => { lookup.delete(block.key); }); } function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { let o = old_blocks.length; let n = list.length; let i = o; const old_indexes = {}; while (i--) old_indexes[old_blocks[i].key] = i; const new_blocks = []; const new_lookup = new Map(); const deltas = new Map(); i = n; while (i--) { const child_ctx = get_context(ctx, list, i); const key = get_key(child_ctx); let block = lookup.get(key); if (!block) { block = create_each_block(key, child_ctx); block.c(); } else if (dynamic) { block.p(child_ctx, dirty); } new_lookup.set(key, new_blocks[i] = block); if (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key])); } const will_move = new Set(); const did_move = new Set(); function insert(block) { transition_in(block, 1); block.m(node, next); lookup.set(block.key, block); next = block.first; n--; } while (o && n) { const new_block = new_blocks[n - 1]; const old_block = old_blocks[o - 1]; const new_key = new_block.key; const old_key = old_block.key; if (new_block === old_block) { // do nothing next = new_block.first; o--; n--; } else if (!new_lookup.has(old_key)) { // remove old block destroy(old_block, lookup); o--; } else if (!lookup.has(new_key) || will_move.has(new_key)) { insert(new_block); } else if (did_move.has(old_key)) { o--; } else if (deltas.get(new_key) > deltas.get(old_key)) { did_move.add(new_key); insert(new_block); } else { will_move.add(old_key); o--; } } while (o--) { const old_block = old_blocks[o]; if (!new_lookup.has(old_block.key)) destroy(old_block, lookup); } while (n) insert(new_blocks[n - 1]); return new_blocks; } function get_spread_update(levels, updates) { const update = {}; const to_null_out = {}; const accounted_for = { $$scope: 1 }; let i = levels.length; while (i--) { const o = levels[i]; const n = updates[i]; if (n) { for (const key in o) { if (!(key in n)) to_null_out[key] = 1; } for (const key in n) { if (!accounted_for[key]) { update[key] = n[key]; accounted_for[key] = 1; } } levels[i] = n; } else { for (const key in o) { accounted_for[key] = 1; } } } for (const key in to_null_out) { if (!(key in update)) update[key] = undefined; } return update; } function get_spread_object(spread_props) { return typeof spread_props === 'object' && spread_props !== null ? spread_props : {}; } function create_component(block) { block && block.c(); } function mount_component(component, target, anchor) { const { fragment, on_mount, on_destroy, after_update } = component.$$; fragment && fragment.m(target, anchor); // onMount happens before the initial afterUpdate add_render_callback(() => { const new_on_destroy = on_mount.map(run).filter(is_function); if (on_destroy) { on_destroy.push(...new_on_destroy); } else { // Edge case - component was destroyed immediately, // most likely as a result of a binding initialising run_all(new_on_destroy); } component.$$.on_mount = []; }); after_update.forEach(add_render_callback); } function destroy_component(component, detaching) { const $$ = component.$$; if ($$.fragment !== null) { run_all($$.on_destroy); $$.fragment && $$.fragment.d(detaching); // TODO null out other refs, including component.$$ (but need to // preserve final state?) $$.on_destroy = $$.fragment = null; $$.ctx = []; } } function make_dirty(component, i) { if (component.$$.dirty[0] === -1) { dirty_components.push(component); schedule_update(); component.$$.dirty.fill(0); } component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); } function init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) { const parent_component = current_component; set_current_component(component); const prop_values = options.props || {}; const $$ = component.$$ = { fragment: null, ctx: null, // state props, update: noop, not_equal, bound: blank_object(), // lifecycle on_mount: [], on_destroy: [], before_update: [], after_update: [], context: new Map(parent_component ? parent_component.$$.context : []), // everything else callbacks: blank_object(), dirty }; let ready = false; $$.ctx = instance ? instance(component, prop_values, (i, ret, ...rest) => { const value = rest.length ? rest[0] : ret; if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { if ($$.bound[i]) $$.bound[i](value); if (ready) make_dirty(component, i); } return ret; }) : []; $$.update(); ready = true; run_all($$.before_update); // `false` as a special case of no DOM component $$.fragment = create_fragment ? create_fragment($$.ctx) : false; if (options.target) { if (options.hydrate) { const nodes = children(options.target); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion $$.fragment && $$.fragment.l(nodes); nodes.forEach(detach); } else { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion $$.fragment && $$.fragment.c(); } if (options.intro) transition_in(component.$$.fragment); mount_component(component, options.target, options.anchor); flush(); } set_current_component(parent_component); } class SvelteComponent { $destroy() { destroy_component(this, 1); this.$destroy = noop; } $on(type, callback) { const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); callbacks.push(callback); return () => { const index = callbacks.indexOf(callback); if (index !== -1) callbacks.splice(index, 1); }; } $set() { // overridden by instance, if it has props } } // eslint-disable-next-line import/no-unresolved const KEY_GET_SOURCE = 'Coriolis store reference withProjection'; const KEY_DISPATCH = 'Coriolis store reference dispatch'; const withProjection = (...args) => getContext(KEY_GET_SOURCE)(...args); const createDispatch = (builder) => { const dispatch = getContext(KEY_DISPATCH); return (...args) => { const event = builder(...args); if (!event) { return } dispatch(event); } }; const createStoreAPIProvider = () => { let receivedStoreAPI; const setStoreAPI = (storeAPI) => { receivedStoreAPI = storeAPI; }; const shareStoreAPI = () => { if (!receivedStoreAPI) { throw new Error('Store API to share has not been set') } const { dispatch, withProjection } = receivedStoreAPI; setContext(KEY_GET_SOURCE, withProjection); setContext(KEY_DISPATCH, dispatch); }; return { setStoreAPI, shareStoreAPI, } }; /* node_modules/@sveltejs/svelte-virtual-list/VirtualList.svelte generated by Svelte v3.24.0 */ function add_css() { var style = element("style"); style.id = "svelte-ukqkvk-style"; style.textContent = "svelte-virtual-list-viewport.svelte-ukqkvk{position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch;display:block}svelte-virtual-list-contents.svelte-ukqkvk,svelte-virtual-list-row.svelte-ukqkvk{display:block}svelte-virtual-list-row.svelte-ukqkvk{overflow:hidden}"; append(document.head, style); } const get_default_slot_changes = dirty => ({ item: dirty & /*visible*/ 16 }); const get_default_slot_context = ctx => ({ item: /*row*/ ctx[23].data }); function get_each_context(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[23] = list[i]; return child_ctx; } // (166:26) Missing template function fallback_block(ctx) { let t; return { c() { t = text("Missing template"); }, m(target, anchor) { insert(target, t, anchor); }, d(detaching) { if (detaching) detach(t); } }; } // (164:2) {#each visible as row (row.index)} function create_each_block(key_1, ctx) { let svelte_virtual_list_row; let t; let current; const default_slot_template = /*$$slots*/ ctx[13].default; const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[12], get_default_slot_context); const default_slot_or_fallback = default_slot || fallback_block(); return { key: key_1, first: null, c() { svelte_virtual_list_row = element("svelte-virtual-list-row"); if (default_slot_or_fallback) default_slot_or_fallback.c(); t = space(); set_custom_element_data(svelte_virtual_list_row, "class", "svelte-ukqkvk"); this.first = svelte_virtual_list_row; }, m(target, anchor) { insert(target, svelte_virtual_list_row, anchor); if (default_slot_or_fallback) { default_slot_or_fallback.m(svelte_virtual_list_row, null); } append(svelte_virtual_list_row, t); current = true; }, p(ctx, dirty) { if (default_slot) { if (default_slot.p && dirty & /*$$scope, visible*/ 4112) { update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[12], dirty, get_default_slot_changes, get_default_slot_context); } } }, i(local) { if (current) return; transition_in(default_slot_or_fallback, local); current = true; }, o(local) { transition_out(default_slot_or_fallback, local); current = false; }, d(detaching) { if (detaching) detach(svelte_virtual_list_row); if (default_slot_or_fallback) default_slot_or_fallback.d(detaching); } }; } function create_fragment(ctx) { let svelte_virtual_list_viewport; let svelte_virtual_list_contents; let each_blocks = []; let each_1_lookup = new Map(); let svelte_virtual_list_viewport_resize_listener; let current; let mounted; let dispose; let each_value = /*visible*/ ctx[4]; const get_key = ctx => /*row*/ ctx[23].index; for (let i = 0; i < each_value.length; i += 1) { let child_ctx = get_each_context(ctx, each_value, i); let key = get_key(child_ctx); each_1_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx)); } return { c() { svelte_virtual_list_viewport = element("svelte-virtual-list-viewport"); svelte_virtual_list_contents = element("svelte-virtual-list-contents"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } set_style(svelte_virtual_list_contents, "padding-top", /*top*/ ctx[5] + "px"); set_style(svelte_virtual_list_contents, "padding-bottom", /*bottom*/ ctx[6] + "px"); set_custom_element_data(svelte_virtual_list_contents, "class", "svelte-ukqkvk"); set_style(svelte_virtual_list_viewport, "height", /*height*/ ctx[0]); set_custom_element_data(svelte_virtual_list_viewport, "class", "svelte-ukqkvk"); add_render_callback(() => /*svelte_virtual_list_viewport_elementresize_handler*/ ctx[16].call(svelte_virtual_list_viewport)); }, m(target, anchor) { insert(target, svelte_virtual_list_viewport, anchor); append(svelte_virtual_list_viewport, svelte_virtual_list_contents); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(svelte_virtual_list_contents, null); } /*svelte_virtual_list_contents_binding*/ ctx[14](svelte_virtual_list_contents); /*svelte_virtual_list_viewport_binding*/ ctx[15](svelte_virtual_list_viewport); svelte_virtual_list_viewport_resize_listener = add_resize_listener(svelte_virtual_list_viewport, /*svelte_virtual_list_viewport_elementresize_handler*/ ctx[16].bind(svelte_virtual_list_viewport)); current = true; if (!mounted) { dispose = listen(svelte_virtual_list_viewport, "scroll", /*handle_scroll*/ ctx[7]); mounted = true; } }, p(ctx, [dirty]) { if (dirty & /*$$scope, visible*/ 4112) { const each_value = /*visible*/ ctx[4]; group_outros(); each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, svelte_virtual_list_contents, outro_and_destroy_block, create_each_block, null, get_each_context); check_outros(); } if (!current || dirty & /*top*/ 32) { set_style(svelte_virtual_list_contents, "padding-top", /*top*/ ctx[5] + "px"); } if (!current || dirty & /*bottom*/ 64) { set_style(svelte_virtual_list_contents, "padding-bottom", /*bottom*/ ctx[6] + "px"); } if (!current || dirty & /*height*/ 1) { set_style(svelte_virtual_list_viewport, "height", /*height*/ ctx[0]); } }, i(local) { if (current) return; for (let i = 0; i < each_value.length; i += 1) { transition_in(each_blocks[i]); } current = true; }, o(local) { for (let i = 0; i < each_blocks.length; i += 1) { transition_out(each_blocks[i]); } current = false; }, d(detaching) { if (detaching) detach(svelte_virtual_list_viewport); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].d(); } /*svelte_virtual_list_contents_binding*/ ctx[14](null); /*svelte_virtual_list_viewport_binding*/ ctx[15](null); svelte_virtual_list_viewport_resize_listener(); mounted = false; dispose(); } }; } function instance($$self, $$props, $$invalidate) { let { items } = $$props; let { height = "100%" } = $$props; let { itemHeight = undefined } = $$props; let { start = 0 } = $$props; let { end = 0 } = $$props; // local state let height_map = []; let rows; let viewport; let contents; let viewport_height = 0; let visible; let mounted; let top = 0; let bottom = 0; let average_height; async function refresh(items, viewport_height, itemHeight) { const { scrollTop } = viewport; await tick(); // wait until the DOM is up to date let content_height = top - scrollTop; let i = start; while (content_height < viewport_height && i < items.length) { let row = rows[i - start]; if (!row) { $$invalidate(9, end = i + 1); await tick(); // render the newly visible row row = rows[i - start]; } const row_height = height_map[i] = itemHeight || row.offsetHeight; content_height += row_height; i += 1; } $$invalidate(9, end = i); const remaining = items.length - end; average_height = (top + content_height) / end; $$invalidate(6, bottom = remaining * average_height); height_map.length = items.length; } async function handle_scroll() { const { scrollTop } = viewport; const old_start = start; for (let v = 0; v < rows.length; v += 1) { height_map[start + v] = itemHeight || rows[v].offsetHeight; } let i = 0; let y = 0; while (i < items.length) { const row_height = height_map[i] || average_height; if (y + row_height > scrollTop) { $$invalidate(8, start = i); $$invalidate(5, top = y); break; } y += row_height; i += 1; } while (i < items.length) { y += height_map[i] || average_height; i += 1; if (y > scrollTop + viewport_height) break; } $$invalidate(9, end = i); const remaining = items.length - end; average_height = y / end; while (i < items.length) height_map[i++] = average_height; $$invalidate(6, bottom = remaining * average_height); // prevent jumping if we scrolled up into unknown territory if (start < old_start) { await tick(); let expected_height = 0; let actual_height = 0; for (let i = start; i < old_start; i += 1) { if (rows[i - start]) { expected_height += height_map[i]; actual_height += itemHeight || rows[i - start].offsetHeight; } } const d = actual_height - expected_height; viewport.scrollTo(0, scrollTop + d); } } // TODO if we overestimated the space these // rows would occupy we may need to add some // more. maybe we can just call handle_scroll again? // trigger initial refresh onMount(() => { rows = contents.getElementsByTagName("svelte-virtual-list-row"); $$invalidate(19, mounted = true); }); let { $$slots = {}, $$scope } = $$props; function svelte_virtual_list_contents_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { contents = $$value; $$invalidate(2, contents); }); } function svelte_virtual_list_viewport_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { viewport = $$value; $$invalidate(1, viewport); }); } function svelte_virtual_list_viewport_elementresize_handler() { viewport_height = this.offsetHeight; $$invalidate(3, viewport_height); } $$self.$set = $$props => { if ("items" in $$props) $$invalidate(10, items = $$props.items); if ("height" in $$props) $$invalidate(0, height = $$props.height); if ("itemHeight" in $$props) $$invalidate(11, itemHeight = $$props.itemHeight); if ("start" in $$props) $$invalidate(8, start = $$props.start); if ("end" in $$props) $$invalidate(9, end = $$props.end); if ("$$scope" in $$props) $$invalidate(12, $$scope = $$props.$$scope); }; $$self.$$.update = () => { if ($$self.$$.dirty & /*items, start, end*/ 1792) { $$invalidate(4, visible = items.slice(start, end).map((data, i) => { return { index: i + start, data }; })); } if ($$self.$$.dirty & /*mounted, items, viewport_height, itemHeight*/ 527368) { // whenever `items` changes, invalidate the current heightmap if (mounted) refresh(items, viewport_height, itemHeight); } }; return [ height, viewport, contents, viewport_height, visible, top, bottom, handle_scroll, start, end, items, itemHeight, $$scope, $$slots, svelte_virtual_list_contents_binding, svelte_virtual_list_viewport_binding, svelte_virtual_list_viewport_elementresize_handler ]; } class VirtualList extends SvelteComponent { constructor(options) { super(); if (!document.getElementById("svelte-ukqkvk-style")) add_css(); init(this, options, instance, create_fragment, safe_not_equal, { items: 10, height: 0, itemHeight: 11, start: 8, end: 9 }); } } var identity = function identity(arg) { return arg; }; var compose = function compose() { for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } return funcs.reduce(function (acc, func) { return function (arg) { return func(acc(arg)); }; }, identity); }; var includes = function includes(needle) { return function (haystack) { return haystack.includes(needle); }; }; var loweredType = function loweredType(event) { return event.type.toLowerCase(); }; var filteredEventList = function filteredEventList(_ref) { var useProjection = _ref.useProjection; return useProjection(eventList), useProjection(eventListFilter), function (events, filter) { return filter ? events.filter(compose(loweredType, includes(filter.toLowerCase()))) : events; }; }; var selectedTimingType = lastPayloadOfType(timingTypeSelected); /* src/components/units/EventListItem.svelte generated by Svelte v3.24.0 */ function add_css$1() { var style = element("style"); style.id = "svelte-16fovdx-style"; style.textContent = ".eventListItem.svelte-16fovdx.svelte-16fovdx{display:flex;flex-direction:row;margin:0;padding:.5em;cursor:default;background:rgba(0, 0, 0, 0.1);line-height:1.5em}.eventListItem.svelte-16fovdx.svelte-16fovdx:hover{background:rgba(255, 255, 255, 0.1)}.eventListItem.isEven.svelte-16fovdx.svelte-16fovdx{background:rgba(0, 0, 0, 0.2)}.eventListItem.isPastEvent.svelte-16fovdx.svelte-16fovdx{opacity:.4}.eventListItem.isPastEvent.svelte-16fovdx.svelte-16fovdx:hover{opacity:1}.eventListItem.isError.svelte-16fovdx.svelte-16fovdx{color:#f66578}.eventListItem.isConnection.svelte-16fovdx.svelte-16fovdx{background:#3f4271;padding:.1em .5em 0}.eventListItem.isConnection.isSelected.svelte-16fovdx.svelte-16fovdx{background-color:rgba(24, 37, 196, 0.6)}.eventListItem.isSelected.svelte-16fovdx.svelte-16fovdx{opacity:1;background-color:#99845e}.eventListItem.svelte-16fovdx .type.svelte-16fovdx{flex:1 1 auto}.eventListItem.svelte-16fovdx .timing.svelte-16fovdx{position:relative;flex:0 0 auto;text-align:right}.eventListItem.svelte-16fovdx .timing .timing-select.svelte-16fovdx{border:none;background:none;padding:0;margin:0;display:block;-moz-appearance:none;-webkit-appearance:none;appearance:none;border:1px dotted rgba(0, 255, 0, 0.4);cursor:pointer;color:rgba(0, 255, 0, 0.6)}.eventListItem.svelte-16fovdx .timing .timing-select option.svelte-16fovdx{width:0}"; append(document.head, style); } function create_fragment$1(ctx) { let div2; let div0; let t0_value = /*item*/ ctx[0].type + ""; let t0; let t1; let div1; let select; let option0; let t2; let t3_value = /*item*/ ctx[0].deltaN + ""; let t3; let t4; let option0_selected_value; let option1; let t5; let t6_value = /*item*/ ctx[0].delta0 + ""; let t6; let t7; let option1_selected_value; let option2; let t8_value = /*item*/ ctx[0].date + ""; let t8; let option2_selected_value; let option3; let t9_value = /*item*/ ctx[0].timestamp + ""; let t9; let option3_selected_value; let mounted; let dispose; return { c() { div2 = element("div"); div0 = element("div"); t0 = text(t0_value); t1 = space(); div1 = element("div"); select = element("select"); option0 = element("option"); t2 = text("+"); t3 = text(t3_value); t4 = text("ms"); option1 = element("option"); t5 = text("+"); t6 = text(t6_value); t7 = text("ms"); option2 = element("option"); t8 = text(t8_value); option3 = element("option"); t9 = text(t9_value); attr(div0, "class", "type svelte-16fovdx"); option0.__value = "deltaN"; option0.value = option0.__value; option0.selected = option0_selected_value = /*$selectedTimingType$*/ ctx[2] === "deltaN"; attr(option0, "class", "svelte-16fovdx"); option1.__value = "delta0"; option1.value = option1.__value; option1.selected = option1_selected_value = /*$selectedTimingType$*/ ctx[2] === "delta0"; attr(option1, "class", "svelte-16fovdx"); option2.__value = "date"; option2.value = option2.__value; option2.selected = option2_selected_value = /*$selectedTimingType$*/ ctx[2] === "date"; attr(option2, "class", "svelte-16fovdx"); option3.__value = "timestamp"; option3.value = option3.__value; option3.selected = option3_selected_value = /*$selectedTimingType$*/ ctx[2] === "timestamp"; attr(option3, "class", "svelte-16fovdx"); attr(select, "class", "timing-select svelte-16fovdx"); attr(div1, "class", "timing svelte-16fovdx"); attr(div2, "class", "eventListItem svelte-16fovdx"); toggle_class(div2, "isEven", !(/*item*/ ctx[0].rank % 2)); toggle_class(div2, "isPastEvent", /*item*/ ctx[0].isPastEvent); toggle_class(div2, "isError", /*item*/ ctx[0].error); toggle_class(div2, "isConnection", /*item*/ ctx[0].type && /*item*/ ctx[0].type.includes("Init projection")); toggle_class(div2, "isSelected", /*selected*/ ctx[1]); }, m(target, anchor) { insert(target, div2, anchor); append(div2, div0); append(div0, t0); append(div2, t1); append(div2, div1); append(div1, select); append(select, option0); append(option0, t2); append(option0, t3); append(option0, t4); append(select, option1); append(option1, t5); append(option1, t6); append(option1, t7); append(select, option2); append(option2, t8); append(select, option3); append(option3, t9); if (!mounted) { dispose = [ listen(select, "blur", /*selectTimingType*/ ctx[4]), listen(div1, "click", stop_propagation(/*click_handler*/ ctx[6])), listen(div2, "click", /*selectEventListItem*/ ctx[5]) ]; mounted = true; } }, p(ctx, [dirty]) { if (dirty & /*item*/ 1 && t0_value !== (t0_value = /*item*/ ctx[0].type + "")) set_data(t0, t0_value); if (dirty & /*item*/ 1 && t3_value !== (t3_value = /*item*/ ctx[0].deltaN + "")) set_data(t3, t3_value); if (dirty & /*$selectedTimingType$*/ 4 && option0_selected_value !== (option0_selected_value = /*$selectedTimingType$*/ ctx[2] === "deltaN")) { option0.selected = option0_selected_value; } if (dirty & /*item*/ 1 && t6_value !== (t6_value = /*item*/ ctx[0].delta0 + "")) set_data(t6, t6_value); if (dirty & /*$selectedTimingType$*/ 4 && option1_selected_value !== (option1_selected_value = /*$selectedTimingType$*/ ctx[2] === "delta0")) { option1.selected = option1_selected_value; } if (dirty & /*item*/ 1 && t8_value !== (t8_value = /*item*/ ctx[0].date + "")) set_data(t8, t8_value); if (dirty & /*$selectedTimingType$*/ 4 && option2_selected_value !== (option2_selected_value = /*$selectedTimingType$*/ ctx[2] === "date")) { option2.selected = option2_selected_value; } if (dirty & /*item*/ 1 && t9_value !== (t9_value = /*item*/ ctx[0].timestamp + "")) set_data(t9, t9_value); if (dirty & /*$selectedTimingType$*/ 4 && option3_selected_value !== (option3_selected_value = /*$selectedTimingType$*/ ctx[2] === "timestamp")) { option3.selected = option3_selected_value; } if (dirty & /*item*/ 1) { toggle_class(div2, "isEven", !(/*item*/ ctx[0].rank % 2)); } if (dirty & /*item*/ 1) { toggle_class(div2, "isPastEvent", /*item*/ ctx[0].isPastEvent); } if (dirty & /*item*/ 1) { toggle_class(div2, "isError", /*item*/ ctx[0].error); } if (dirty & /*item*/ 1) { toggle_class(div2, "isConnection", /*item*/ ctx[0].type && /*item*/ ctx[0].type.includes("Init projection")); } if (dirty & /*selected*/ 2) { toggle_class(div2, "isSelected", /*selected*/ ctx[1]); } }, i: noop, o: noop, d(detaching) { if (detaching) detach(div2); mounted = false; run_all(dispose); } }; } function instance$1($$self, $$props, $$invalidate) { let $selectedTimingType$; let { item } = $$props; let { selected } = $$props; const selectedTimingType$ = withProjection(selectedTimingType); component_subscribe($$self, selectedTimingType$, value => $$invalidate(2, $selectedTimingType$ = value)); const selectTimingType = createDispatch(event => timingTypeSelected(event.target.value)); const selectEventListItem = createDispatch(() => selectedEventListItem(item)); function click_handler(event) { bubble($$self, event); } $$self.$set = $$props => { if ("item" in $$props) $$invalidate(0, item = $$props.item); if ("selected" in $$props) $$invalidate(1, selected = $$props.selected); }; return [ item, selected, $selectedTimingType$, selectedTimingType$, selectTimingType, selectEventListItem, click_handler ]; } class EventListItem extends SvelteComponent { constructor(options) { super(); if (!document.getElementById("svelte-16fovdx-style")) add_css$1(); init(this, options, instance$1, create_fragment$1, safe_not_equal, { item: 0, selected: 1 }); } } var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } var jsonFormatHighlight = createCommonjsModule(function (module, exports) { (function (global, factory) { module.exports = factory() ; }(commonjsGlobal, (function () { var defaultColors = { keyColor: 'dimgray', numberColor: 'lightskyblue', stringColor: 'lightcoral', trueColor: 'lightseagreen', falseColor: '#f66578', nullColor: 'cornflowerblue' }; var entityMap = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;', '`': '&#x60;', '=': '&#x3D;' }; function escapeHtml(html) { return String(html).replace(/[&<>"'`=]/g, function (s) { return entityMap[s]; }); } function index (json, colorOptions) { if ( colorOptions === void 0 ) colorOptions = {}; var valueType = typeof json; if (valueType !== 'string') { json = JSON.stringify(json, null, 2) || valueType; } var colors = Object.assign({}, defaultColors, colorOptions); json = json.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>'); return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+]?\d+)?)/g, function (match) { var color = colors.numberColor; var style = ''; if (/^"/.test(match)) { if (/:$/.test(match)) { color = colors.keyColor; } else { color = colors.stringColor; match = '"' + escapeHtml(match.substr(1, match.length - 2)) + '"'; style = 'word-wrap:break-word;white-space:pre-wrap;'; } } else { color = /true/.test(match) ? colors.trueColor : /false/.test(match) ? colors.falseColor : /null/.test(match) ? colors.nullColor : color; } return ("<span style=\"" + style + "color:" + color + "\">" + match + "</span>"); }); } return index; }))); }); /* src/components/units/EventProjectionCallDetails.svelte generated by Svelte v3.24.0 */ function add_css$2() { var style = element("style"); style.id = "svelte-13t05ca-style"; style.textContent = "h3.svelte-13t05ca.svelte-13t05ca{cursor:pointer;margin:5px 0 0;padding:0 1em}li.svelte-13t05ca.svelte-13t05ca{position:relative;background:rgba(0, 0, 0, 0.2)}li.svelte-13t05ca.svelte-13t05ca:nth-child(even){background:rgba(0, 0, 0, 0.1)}li.svelte-13t05ca.svelte-13t05ca::before{content:'+';position:absolute;top:0;left:0;padding:3px 0 0 4px;pointer-events:none;user-select:none}li.isUnfolded.svelte-13t05ca.svelte-13t05ca::before{content:'-'}.before.svelte-13t05ca.svelte-13t05ca,.after.svelte-13t05ca.svelte-13t05ca{margin-left:10px;background:#5e5c5c;padding:10px}.before.svelte-13t05ca pre.svelte-13t05ca,.after.svelte-13t05ca pre.svelte-13t05ca{margin:0}"; append(document.head, style); } // (49:2) {#if isUnfolded} function create_if_block(ctx) { let div0; let t0; let pre0; let raw0_value = jsonFormatHighlight(/*projectionCall*/ ctx[0].previousState, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + ""; let t1; let div1; let t2; let pre1; let raw1_value = jsonFormatHighlight(/*projectionCall*/ ctx[0].newState, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + ""; return { c() { div0 = element("div"); t0 = text("before:\n "); pre0 = element("pre"); t1 = space(); div1 = element("div"); t2 = text("after:\n "); pre1 = element("pre"); attr(pre0, "class", "svelte-13t05ca"); attr(div0, "class", "before svelte-13t05ca"); attr(pre1, "class", "svelte-13t05ca"); attr(div1, "class", "after svelte-13t05ca"); }, m(target, anchor) { insert(target, div0, anchor); append(div0, t0); append(div0, pre0); pre0.innerHTML = raw0_value; insert(target, t1, anchor); insert(target, div1, anchor); append(div1, t2); append(div1, pre1); pre1.innerHTML = raw1_value; }, p(ctx, dirty) { if (dirty & /*projectionCall*/ 1 && raw0_value !== (raw0_value = jsonFormatHighlight(/*projectionCall*/ ctx[0].previousState, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + "")) pre0.innerHTML = raw0_value; if (dirty & /*projectionCall*/ 1 && raw1_value !== (raw1_value = jsonFormatHighlight(/*projectionCall*/ ctx[0].newState, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + "")) pre1.innerHTML = raw1_value; }, d(detaching) { if (detaching) detach(div0); if (detaching) detach(t1); if (detaching) detach(div1); } }; } function create_fragment$2(ctx) { let li; let h3; let t0_value = /*projectionCall*/ ctx[0].name + ""; let t0; let t1; let mounted; let dispose; let if_block = /*isUnfolded*/ ctx[1] && create_if_block(ctx); return { c() { li = element("li"); h3 = element("h3"); t0 = text(t0_value); t1 = space(); if (if_block) if_block.c(); attr(h3, "class", "svelte-13t05ca"); attr(li, "class", "svelte-13t05ca"); toggle_class(li, "isUnfolded", /*isUnfolded*/ ctx[1]); }, m(target, anchor) { insert(target, li, anchor); append(li, h3); append(h3, t0); append(li, t1); if (if_block) if_block.m(li, null); if (!mounted) { dispose = listen(h3, "click", /*toggleFold*/ ctx[2]); mounted = true; } }, p(ctx, [dirty]) { if (dirty & /*projectionCall*/ 1 && t0_value !== (t0_value = /*projectionCall*/ ctx[0].name + "")) set_data(t0, t0_value); if (/*isUnfolded*/ ctx[1]) { if (if_block) { if_block.p(ctx, dirty); } else { if_block = create_if_block(ctx); if_block.c(); if_block.m(li, null); } } else if (if_block) { if_block.d(1); if_block = null; } if (dirty & /*isUnfolded*/ 2) { toggle_class(li, "isUnfolded", /*isUnfolded*/ ctx[1]); } }, i: noop, o: noop, d(detaching) { if (detaching) detach(li); if (if_block) if_block.d(); mounted = false; dispose(); } }; } function instance$2($$self, $$props, $$invalidate) { let { projectionCall } = $$props; let isUnfolded = false; const toggleFold = () => { $$invalidate(1, isUnfolded = !isUnfolded); }; $$self.$set = $$props => { if ("projectionCall" in $$props) $$invalidate(0, projectionCall = $$props.projectionCall); }; return [projectionCall, isUnfolded, toggleFold]; } class EventProjectionCallDetails extends SvelteComponent { constructor(options) { super(); if (!document.getElementById("svelte-13t05ca-style")) add_css$2(); init(this, options, instance$2, create_fragment$2, safe_not_equal, { projectionCall: 0 }); } } /* src/components/units/EventDetails.svelte generated by Svelte v3.24.0 */ function add_css$3() { var style = element("style"); style.id = "svelte-1qpljyv-style"; style.textContent = ".event-details.svelte-1qpljyv.svelte-1qpljyv{display:flex;flex-direction:column;position:relative;border-top:2px solid silver}.event-details.svelte-1qpljyv .type.svelte-1qpljyv{flex:0;margin:0;background:gray;font-size:1em;line-height:2;padding:0 1em}.event-details.svelte-1qpljyv .body.svelte-1qpljyv{flex:1;overflow:hidden;display:flex;flex-direction:row}.event-details.svelte-1qpljyv .body .content.svelte-1qpljyv{flex:1;overflow:auto;padding:10px}.event-details.svelte-1qpljyv .body .content .error-warning.svelte-1qpljyv{color:#f66578}.event-details.svelte-1qpljyv .body .content h3.svelte-1qpljyv{margin:0;padding:0 .5em;background:rgba(0, 0, 0, 0.2);font-size:1em}.event-details.svelte-1qpljyv .body .effects.svelte-1qpljyv{flex:1;overflow:auto;padding:10px}.event-details.svelte-1qpljyv .body .effects ul.svelte-1qpljyv{list-style:none;margin:0;padding:0}.event-details.svelte-1qpljyv .actions .close.svelte-1qpljyv{position:absolute;right:0;top:0;margin:0;padding:4px 13px;width:35px;color:rgba(0, 0, 0, 0);cursor:pointer}.event-details.svelte-1qpljyv .actions .close.svelte-1qpljyv::before{content:'X';color:black}"; append(document.head, style); } function get_each_context$1(ctx, list, i) { const child_ctx = ctx.slice(); child_ctx[3] = list[i]; return child_ctx; } // (103:4) {:else} function create_else_block(ctx) { let div; let t; let pre; let raw_value = jsonFormatHighlight(/*details*/ ctx[0].payload, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + ""; return { c() { div = element("div"); t = text("Initial projection value\n "); pre = element("pre"); attr(div, "class", "content svelte-1qpljyv"); }, m(target, anchor) { insert(target, div, anchor); append(div, t); append(div, pre); pre.innerHTML = raw_value; }, p(ctx, dirty) { if (dirty & /*details*/ 1 && raw_value !== (raw_value = jsonFormatHighlight(/*details*/ ctx[0].payload, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + "")) pre.innerHTML = raw_value; }, i: noop, o: noop, d(detaching) { if (detaching) detach(div); } }; } // (75:4) {#if !isProjectionInit} function create_if_block$1(ctx) { let div0; let t0; let h30; let t2; let pre0; let raw0_value = jsonFormatHighlight(/*details*/ ctx[0].error && /*details*/ ctx[0].payload.message || /*details*/ ctx[0].payload, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + ""; let t3; let h31; let t5; let pre1; let raw1_value = jsonFormatHighlight(/*details*/ ctx[0].meta, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + ""; let t6; let div1; let t7; let t8_value = /*details*/ ctx[0].projectionCalls.length + ""; let t8; let t9; let ul; let each_blocks = []; let each_1_lookup = new Map(); let current; let if_block = /*details*/ ctx[0].error && create_if_block_1(); let each_value = /*details*/ ctx[0].projectionCalls; const get_key = ctx => /*projectionCall*/ ctx[3].name; for (let i = 0; i < each_value.length; i += 1) { let child_ctx = get_each_context$1(ctx, each_value, i); let key = get_key(child_ctx); each_1_lookup.set(key, each_blocks[i] = create_each_block$1(key, child_ctx)); } return { c() { div0 = element("div"); if (if_block) if_block.c(); t0 = space(); h30 = element("h3"); h30.textContent = "payload"; t2 = space(); pre0 = element("pre"); t3 = space(); h31 = element("h3"); h31.textContent = "meta"; t5 = space(); pre1 = element("pre"); t6 = space(); div1 = element("div"); t7 = text("Number of projections affected: "); t8 = text(t8_value); t9 = space(); ul = element("ul"); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].c(); } attr(h30, "class", "svelte-1qpljyv"); attr(h31, "class", "svelte-1qpljyv"); attr(div0, "class", "content svelte-1qpljyv"); attr(ul, "class", "svelte-1qpljyv"); attr(div1, "class", "effects svelte-1qpljyv"); }, m(target, anchor) { insert(target, div0, anchor); if (if_block) if_block.m(div0, null); append(div0, t0); append(div0, h30); append(div0, t2); append(div0, pre0); pre0.innerHTML = raw0_value; append(div0, t3); append(div0, h31); append(div0, t5); append(div0, pre1); pre1.innerHTML = raw1_value; insert(target, t6, anchor); insert(target, div1, anchor); append(div1, t7); append(div1, t8); append(div1, t9); append(div1, ul); for (let i = 0; i < each_blocks.length; i += 1) { each_blocks[i].m(ul, null); } current = true; }, p(ctx, dirty) { if (/*details*/ ctx[0].error) { if (if_block) ; else { if_block = create_if_block_1(); if_block.c(); if_block.m(div0, t0); } } else if (if_block) { if_block.d(1); if_block = null; } if ((!current || dirty & /*details*/ 1) && raw0_value !== (raw0_value = jsonFormatHighlight(/*details*/ ctx[0].error && /*details*/ ctx[0].payload.message || /*details*/ ctx[0].payload, { keyColor: "rgb(138, 204, 114)", stringColor: "rgb(235, 235, 227)" }) + "")) pre0.innerHTML = raw0_value;