{"version":3,"file":"tableSettings-D1MSPxbQ.cjs","names":["react","v","p","throttle","Store","throttle$1","e","React","react","lastArgs: Args | undefined","timeout: ReturnType<typeof setTimeout> | undefined","Popover: TableTheme['components']['Popover']","CsvExporter"],"sources":["../node_modules/schummar-state/dist/es/store.js","../node_modules/schummar-state/dist/es/react.js","../src/misc/throttle.ts","../src/theme/defaultTheme/defaultClasses.ts","../src/theme/defaultTheme/popover.tsx","../src/theme/tableTheme.tsx","../src/misc/tableSettings.tsx"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __restKey = (key) => typeof key === \"symbol\" ? key : key + \"\";\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nimport { freeze, enableMapSet, enablePatches, produce, applyPatches } from \"immer\";\nconst isAncestor = (ancestor, path) => {\n  return ancestor.length <= path.length && ancestor.every((v, i) => v === \"*\" || path[i] === \"*\" || String(v) === String(path[i]));\n};\nconst get = (value, path) => {\n  for (const part of path) {\n    if (value instanceof Object && part in value)\n      value = value[part];\n    else {\n      value = void 0;\n      break;\n    }\n  }\n  return value;\n};\nconst split = (value, path) => {\n  const [first, ...rest] = path;\n  if (first === void 0)\n    return [value, []];\n  if (rest.length === 0) {\n    if (first === \"*\")\n      return [{}, Object.entries(value).map(([k, v]) => ({ path: [k], value: v }))];\n    if (!(first in value))\n      return [value, []];\n    const _a = value, { [first]: subValue } = _a, newValue2 = __objRest(_a, [__restKey(first)]);\n    return [newValue2, [{ path: [first], value: subValue }]];\n  }\n  const newValue = __spreadValues({}, value);\n  const subValues = new Array();\n  for (const key of first === \"*\" ? Object.keys(value) : [first]) {\n    if (!(newValue[key] instanceof Object))\n      return [value, []];\n    const result = split(newValue[key], rest);\n    newValue[key] = result[0];\n    subValues.push(...result[1].map((s) => ({ path: [key, ...s.path], value: s.value })));\n  }\n  return [newValue, subValues];\n};\nclass StorePersist {\n  constructor(store, storage, options = {}) {\n    this.store = store;\n    this.storage = storage;\n    this.options = options;\n    this.replayPatches = new Array();\n    this.isInitialized = false;\n    this.whenInitialized = this.load();\n    this.isStopped = false;\n    this.saveQueue = new Array();\n    this.isSaving = false;\n    if (!options.paths) {\n      this.paths = [{ path: [], throttleMs: options.throttleMs }];\n    } else {\n      this.paths = options.paths.map((p) => {\n        var _a;\n        return {\n          path: (typeof p === \"object\" ? p.path : p).split(\".\"),\n          throttleMs: (_a = typeof p === \"object\" ? p.throttleMs : void 0) != null ? _a : options.throttleMs\n        };\n      });\n    }\n    this.paths.sort((a, b) => b.path.length - a.path.length);\n    this.watch();\n  }\n  async load() {\n    var _a;\n    try {\n      const storage = this.storage;\n      let keys;\n      if (\"keys\" in storage) {\n        keys = await storage.keys();\n      } else {\n        const length = storage.length instanceof Function ? await storage.length() : storage.length;\n        keys = new Array();\n        for (let i = 0; i < length; i++) {\n          const key = await storage.key(i);\n          if (key !== null)\n            keys.push(key);\n        }\n      }\n      keys.sort((a, b) => a.length - b.length);\n      const patches = new Array();\n      for (const key of keys) {\n        const value = await storage.getItem(key);\n        if (value) {\n          patches.push({\n            path: key.split(\".\"),\n            op: \"replace\",\n            value: value === \"undefined\" ? void 0 : JSON.parse(value),\n            persist: this\n          });\n        }\n      }\n      if (this.isStopped) {\n        return false;\n      }\n      if (patches.length > 0) {\n        this.store.applyPatches(patches);\n      }\n      this.isInitialized = true;\n      if (this.replayPatches.length > 0) {\n        this.store.applyPatches(this.replayPatches);\n        this.replayPatches = [];\n      }\n      return true;\n    } catch (e) {\n      ((_a = this.options.log) != null ? _a : console.error)(\"Failed to load storePersist:\", e);\n      return false;\n    }\n  }\n  watch() {\n    this.sub = this.store.subscribePatches((patches) => {\n      for (const patch of patches) {\n        if (patch.persist === this) {\n          continue;\n        } else if (this.isInitialized === true) {\n          this.addToSaveQueue(patch.path);\n        } else {\n          this.replayPatches.push(patch);\n        }\n      }\n    });\n  }\n  addToSaveQueue(path) {\n    var _a;\n    const match = this.paths.find((p) => isAncestor(p.path, path));\n    if (!match)\n      return;\n    path = path.slice(0, match.path.length);\n    const t = Date.now() + ((_a = match.throttleMs) != null ? _a : 0);\n    if (this.saveQueue.some((i) => i.t <= t && isAncestor(i.path, path)))\n      return;\n    this.saveQueue.push({ path, t });\n    this.saveQueue.sort((a, b) => a.t - b.t);\n    this.run();\n  }\n  async run() {\n    if (this.saveTimeout)\n      clearTimeout(this.saveTimeout);\n    const next = this.saveQueue[0];\n    if (!next)\n      return;\n    if (next.t > Date.now()) {\n      this.saveTimeout = setTimeout(() => this.run(), next.t - Date.now());\n      return;\n    }\n    try {\n      this.isSaving = true;\n      this.saveQueue.shift();\n      await this.save(next.path);\n    } finally {\n      this.isSaving = false;\n      this.run();\n    }\n  }\n  async save(path) {\n    var _a, _b;\n    const { store, storage } = this;\n    let value = get(store.getState(), path);\n    const subPaths = this.paths.filter((p) => isAncestor(path, p.path) && p.path.length > path.length).map((p) => p.path.slice(path.length));\n    const subValues = new Array();\n    for (const subPath of subPaths) {\n      const result2 = split(value, subPath);\n      value = result2[0];\n      subValues.push(...result2[1].map((s) => ({ path: [...path, ...s.path], value: s.value })));\n    }\n    const result = storage.setItem(path.join(\".\"), (_a = JSON.stringify(value)) != null ? _a : \"undefined\");\n    if (result instanceof Promise)\n      await result;\n    for (const { path: path2, value: value2 } of subValues) {\n      const result2 = storage.setItem(path2.join(\".\"), (_b = JSON.stringify(value2)) != null ? _b : \"undefined\");\n      if (result2 instanceof Promise)\n        await result2;\n    }\n  }\n  stop() {\n    var _a;\n    this.isStopped = true;\n    (_a = this.sub) == null ? void 0 : _a.call(this);\n  }\n}\nfunction hash(arg) {\n  return JSON.stringify({ arg }, (_key, value) => {\n    if (value instanceof Object && !(value instanceof Array)) {\n      const obj = {};\n      for (const key of Object.keys(value).sort()) {\n        obj[key] = value[key];\n      }\n      return obj;\n    }\n    return value;\n  });\n}\nvar react = function equal(a, b) {\n  if (a === b)\n    return true;\n  if (a && b && typeof a == \"object\" && typeof b == \"object\") {\n    if (a.constructor !== b.constructor)\n      return false;\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length)\n        return false;\n      for (i = length; i-- !== 0; )\n        if (!equal(a[i], b[i]))\n          return false;\n      return true;\n    }\n    if (a instanceof Map && b instanceof Map) {\n      if (a.size !== b.size)\n        return false;\n      for (i of a.entries())\n        if (!b.has(i[0]))\n          return false;\n      for (i of a.entries())\n        if (!equal(i[1], b.get(i[0])))\n          return false;\n      return true;\n    }\n    if (a instanceof Set && b instanceof Set) {\n      if (a.size !== b.size)\n        return false;\n      for (i of a.entries())\n        if (!b.has(i[0]))\n          return false;\n      return true;\n    }\n    if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n      length = a.length;\n      if (length != b.length)\n        return false;\n      for (i = length; i-- !== 0; )\n        if (a[i] !== b[i])\n          return false;\n      return true;\n    }\n    if (a.constructor === RegExp)\n      return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf)\n      return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString)\n      return a.toString() === b.toString();\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length)\n      return false;\n    for (i = length; i-- !== 0; )\n      if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n        return false;\n    for (i = length; i-- !== 0; ) {\n      var key = keys[i];\n      if (key === \"_owner\" && a.$$typeof) {\n        continue;\n      }\n      if (!equal(a[key], b[key]))\n        return false;\n    }\n    return true;\n  }\n  return a !== a && b !== b;\n};\nfunction createSelector(stringSelector) {\n  const parts = stringSelector.split(\".\");\n  return (state) => parts.reduce((v, p) => v instanceof Object && p in v ? v[p] : void 0, state);\n}\nfunction setWithSelector(state, stringSelector, value) {\n  const parts = stringSelector.split(\".\");\n  const prefix = parts.slice(0, -1);\n  const last = parts[parts.length - 1];\n  for (const part of prefix) {\n    if (state instanceof Object && part in state) {\n      state = state[part];\n    } else {\n      throw Error(`Could not set ${stringSelector} because path ${stringSelector} doesn't exist`);\n    }\n  }\n  if (state instanceof Object) {\n    state[last] = value;\n  } else {\n    throw Error(`Could not set ${stringSelector} because path ${stringSelector} doesn't exist`);\n  }\n}\nfunction throttle(fn, ms) {\n  let last = 0;\n  let lastArgs;\n  let timeout;\n  function run() {\n    const args = lastArgs;\n    last = Date.now();\n    lastArgs = void 0;\n    timeout = void 0;\n    fn(...args);\n  }\n  return function(...args) {\n    const now = Date.now();\n    lastArgs = args;\n    if (timeout)\n      ;\n    else if (now < last + ms) {\n      timeout = setTimeout(run, last + ms - now);\n    } else {\n      run();\n    }\n  };\n}\nconst RESTART_UPDATE = Symbol(\"RESTART_UPDATE\");\nclass Store {\n  constructor(state, { log = (...data) => console.error(...data) } = {}) {\n    this.state = state;\n    this.subscriptions = new Set();\n    this.batchCounter = 0;\n    this.reactions = new Set();\n    this.patches = new Array();\n    freeze(state, true);\n    enableMapSet();\n    enablePatches();\n    this.options = {\n      log\n    };\n  }\n  getState() {\n    return this.state;\n  }\n  update(update) {\n    this.checkLock();\n    this.state = produce(this.state, (draft) => update(draft, this.state), (patches) => this.patches.push(...patches));\n    this.notify();\n  }\n  set(state) {\n    this.checkLock();\n    this.state = produce(this.state, () => state, (patches) => this.patches.push(...patches));\n    this.notify();\n  }\n  applyPatches(patches) {\n    this.checkLock();\n    this.state = applyPatches(this.state, patches);\n    this.patches.push(...patches);\n    this.notify();\n  }\n  batchUpdates(fn) {\n    try {\n      this.batchCounter++;\n      fn();\n    } finally {\n      this.batchCounter--;\n      if (this.batchCounter === 0) {\n        this.notify();\n      }\n    }\n  }\n  subscribe(...args) {\n    let selector, listener, options;\n    if (args[1] instanceof Function) {\n      [selector, listener, options] = args;\n      if (typeof selector === \"string\") {\n        selector = createSelector(selector);\n      }\n    } else {\n      [selector, listener, options] = [(x) => x, ...args];\n    }\n    const { runNow = true, throttle: throttle$1 = 0, compare = react } = options != null ? options : {};\n    const throttledListener = throttle$1 ? throttle(listener, throttle$1) : listener;\n    let value = selector(this.state);\n    const internalListener = (state, _patches, init) => {\n      try {\n        const oldValue = value;\n        value = selector(state);\n        if (!init && compare(value, oldValue))\n          return;\n        (init ? listener : throttledListener)(value, oldValue, this.state);\n      } catch (e) {\n        this.options.log(\"Failed to execute listener:\", e);\n      }\n    };\n    this.subscriptions.add(internalListener);\n    if (runNow)\n      internalListener(this.state, [], true);\n    return () => {\n      this.subscriptions.delete(internalListener);\n    };\n  }\n  addReaction(...args) {\n    let selector, reaction, options;\n    if (args[1] instanceof Function) {\n      [selector, reaction, options] = args;\n      if (typeof selector === \"string\") {\n        selector = createSelector(selector);\n      }\n    } else {\n      [selector, reaction, options] = [(x) => x, ...args];\n    }\n    const { runNow = true, compare = react } = options != null ? options : {};\n    let value = selector(this.state);\n    const internalListener = (init) => {\n      let hasChanged = false;\n      try {\n        this.lock = \"reaction\";\n        const oldValue = value;\n        value = selector(this.state);\n        if (!init && compare(value, oldValue))\n          return;\n        this.state = produce(this.state, (draft) => reaction(value, draft, this.state, oldValue), (patches) => {\n          hasChanged = true;\n          this.patches.push(...patches);\n        });\n      } catch (e) {\n        this.options.log(\"Failed to execute reaction:\", e);\n      } finally {\n        delete this.lock;\n      }\n      if (hasChanged && !init)\n        throw RESTART_UPDATE;\n      if (hasChanged && init)\n        this.notify();\n    };\n    this.reactions.add(internalListener);\n    if (runNow)\n      internalListener(true);\n    return () => {\n      this.reactions.delete(internalListener);\n    };\n  }\n  subscribePatches(listener) {\n    const internalListener = (_state, patches) => {\n      try {\n        listener(patches);\n      } catch (e) {\n        this.options.log(\"Failed to execute patch listener:\", e);\n      }\n    };\n    this.subscriptions.add(internalListener);\n    return () => {\n      this.subscriptions.delete(internalListener);\n    };\n  }\n  checkLock() {\n    if (this.lock === \"reaction\") {\n      throw Error(\"You cannot call update from within a reaction. Use the passed draft instead.\");\n    }\n  }\n  notify() {\n    if (this.batchCounter > 0 || this.patches.length === 0)\n      return;\n    try {\n      for (const reaction of this.reactions) {\n        reaction();\n      }\n    } catch (e) {\n      return this.notify();\n    }\n    const patches = this.patches;\n    this.patches = [];\n    this.batchUpdates(() => {\n      for (const subscription of this.subscriptions) {\n        subscription(this.state, patches);\n      }\n    });\n  }\n}\nexport { Store as S, StorePersist as a, createSelector as c, hash as h, react as r, setWithSelector as s };\n//# sourceMappingURL=store.js.map\n","var __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a2, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a2, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a2, prop, b[prop]);\n    }\n  return a2;\n};\nimport { c as createSelector, r as react, s as setWithSelector, S as Store$1, h as hash } from \"./store.js\";\nexport { a as StorePersist } from \"./store.js\";\nimport React, { useCallback, useDebugValue, useMemo, createContext, useContext, useEffect } from \"react\";\nimport \"immer\";\nvar withSelector = { exports: {} };\nvar withSelector_production_min = {};\nvar shim = { exports: {} };\nvar useSyncExternalStoreShim_production_min = {};\n/** @license React vundefined\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar e = React;\nfunction h$1(a2, b) {\n  return a2 === b && (a2 !== 0 || 1 / a2 === 1 / b) || a2 !== a2 && b !== b;\n}\nvar k = typeof Object.is === \"function\" ? Object.is : h$1, l = e.useState, m = e.useEffect, n$1 = e.useLayoutEffect, p$1 = e.useDebugValue;\nfunction q$1(a2, b) {\n  var d = b(), f = l({ inst: { value: d, getSnapshot: b } }), c = f[0].inst, g = f[1];\n  n$1(function() {\n    c.value = d;\n    c.getSnapshot = b;\n    r$1(c) && g({ inst: c });\n  }, [a2, d, b]);\n  m(function() {\n    r$1(c) && g({ inst: c });\n    return a2(function() {\n      r$1(c) && g({ inst: c });\n    });\n  }, [a2]);\n  p$1(d);\n  return d;\n}\nfunction r$1(a2) {\n  var b = a2.getSnapshot;\n  a2 = a2.value;\n  try {\n    var d = b();\n    return !k(a2, d);\n  } catch (f) {\n    return true;\n  }\n}\nfunction t$1(a2, b) {\n  return b();\n}\nvar u$1 = typeof window === \"undefined\" || typeof window.document === \"undefined\" || typeof window.document.createElement === \"undefined\" ? t$1 : q$1;\nuseSyncExternalStoreShim_production_min.useSyncExternalStore = e.useSyncExternalStore !== void 0 ? e.useSyncExternalStore : u$1;\n{\n  shim.exports = useSyncExternalStoreShim_production_min;\n}\n/** @license React vundefined\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar h = React, n = shim.exports;\nfunction p(a2, b) {\n  return a2 === b && (a2 !== 0 || 1 / a2 === 1 / b) || a2 !== a2 && b !== b;\n}\nvar q = typeof Object.is === \"function\" ? Object.is : p, r = n.useSyncExternalStore, t = h.useRef, u = h.useEffect, v = h.useMemo, w = h.useDebugValue;\nwithSelector_production_min.useSyncExternalStoreWithSelector = function(a2, b, e2, l2, g) {\n  var c = t(null);\n  if (c.current === null) {\n    var f = { hasValue: false, value: null };\n    c.current = f;\n  } else\n    f = c.current;\n  c = v(function() {\n    function a3(a4) {\n      if (!c2) {\n        c2 = true;\n        d2 = a4;\n        a4 = l2(a4);\n        if (g !== void 0 && f.hasValue) {\n          var b2 = f.value;\n          if (g(b2, a4))\n            return k2 = b2;\n        }\n        return k2 = a4;\n      }\n      b2 = k2;\n      if (q(d2, a4))\n        return b2;\n      var e3 = l2(a4);\n      if (g !== void 0 && g(b2, e3))\n        return b2;\n      d2 = a4;\n      return k2 = e3;\n    }\n    var c2 = false, d2, k2, m2 = e2 === void 0 ? null : e2;\n    return [function() {\n      return a3(b());\n    }, m2 === null ? void 0 : function() {\n      return a3(m2());\n    }];\n  }, [b, e2, l2, g]);\n  var d = r(a2, c[0], c[1]);\n  u(function() {\n    f.hasValue = true;\n    f.value = d;\n  }, [d]);\n  w(d);\n  return d;\n};\n{\n  withSelector.exports = withSelector_production_min;\n}\nfunction useStoreState(store, ...args) {\n  var _a, _b, _c, _d;\n  let selector, options;\n  if (args[0] instanceof Function) {\n    selector = args[0];\n    options = (_a = args[1]) != null ? _a : {};\n  } else if (typeof args[0] === \"string\") {\n    selector = createSelector(args[0]);\n    options = (_b = args[1]) != null ? _b : {};\n  } else {\n    selector = (x) => x;\n    options = (_c = args[0]) != null ? _c : {};\n  }\n  const subscribe = useCallback((listener) => {\n    return store.subscribe((x) => x, listener, {\n      throttle: options.throttle,\n      runNow: false,\n      compare: (a2, b) => a2 === b\n    });\n  }, [store, options.throttle]);\n  const getSnapshot = useCallback(() => store.getState(), [store]);\n  const value = withSelector.exports.useSyncExternalStoreWithSelector(subscribe, getSnapshot, getSnapshot, selector, (_d = options.compare) != null ? _d : react);\n  useDebugValue(value);\n  return value;\n}\nfunction useStoreProp(store, selector) {\n  const value = useStoreState(store, selector);\n  const update = (value2) => store.update((state) => setWithSelector(state, selector, value2));\n  return [value, update];\n}\nclass Store extends Store$1 {\n  useState(...args) {\n    return useStoreState(this, ...args);\n  }\n  useProp(selector) {\n    return useStoreProp(this, selector);\n  }\n}\nclass StoreScope {\n  constructor(defaultValue) {\n    this.defaultValue = defaultValue;\n    this.Provider = ({ children, store }) => {\n      const _store = useMemo(() => store != null ? store : new Store(this.defaultValue), [store]);\n      return /* @__PURE__ */ React.createElement(this.context.Provider, {\n        value: _store\n      }, children);\n    };\n    this.withScope = (Component) => {\n      return (args) => /* @__PURE__ */ React.createElement(this.Provider, null, /* @__PURE__ */ React.createElement(Component, __spreadValues({}, args)));\n    };\n    this.context = createContext(new Store(defaultValue));\n  }\n  useStore() {\n    return useContext(this.context);\n  }\n  useState(...args) {\n    const store = this.useStore();\n    return useStoreState(store, ...args);\n  }\n  useProp(selector) {\n    const store = this.useStore();\n    return useStoreProp(store, selector);\n  }\n}\nfunction useResource(resource, options) {\n  const { compare, dormant, throttle, updateOnMount, watchOnly } = options != null ? options : {};\n  useEffect(() => {\n    if (updateOnMount && !dormant) {\n      resource.invalidateCache();\n    }\n  }, []);\n  const subscribe = useCallback((listener) => {\n    if (dormant)\n      return () => {\n      };\n    return resource.subscribe(listener, {\n      watchOnly,\n      throttle,\n      runNow: false,\n      compare\n    });\n  }, [resource.id, watchOnly, dormant, throttle]);\n  const getSnapshot = useCallback(() => resource.getCache(), [resource.id]);\n  let value = withSelector.exports.useSyncExternalStoreWithSelector(subscribe, getSnapshot, getSnapshot, (x) => x, react);\n  if (dormant) {\n    value = { state: \"empty\", isLoading: false };\n  }\n  useDebugValue(value);\n  return value;\n}\nfunction useReadResource(resource, options) {\n  const info = useResource(resource, options);\n  if (info.state === \"error\") {\n    throw info.error;\n  }\n  if (info.state === \"empty\") {\n    throw resource.get();\n  }\n  useDebugValue(info.value);\n  return info.value;\n}\nfunction combineResources(...resources) {\n  return {\n    id: hash(resources.map((resource) => resource.id)),\n    invalidateCache() {\n      for (const resource of resources) {\n        resource.invalidateCache();\n      }\n    },\n    subscribe(listener, options) {\n      const handles = resources.map((resource) => resource.subscribe(listener, options));\n      return () => {\n        for (const handle of handles) {\n          handle();\n        }\n      };\n    },\n    getCache() {\n      var _a;\n      const caches = resources.map((resource) => resource.getCache());\n      const isStale = caches.some((cache) => cache.isStale);\n      const isLoading = caches.some((cache) => cache.isLoading);\n      if (caches.some((resource) => resource.state === \"error\")) {\n        const error = (_a = caches.find((cache) => cache.error !== void 0)) == null ? void 0 : _a.error;\n        return { state: \"error\", error, isStale, isLoading };\n      }\n      if (caches.every((resource) => resource.state === \"value\")) {\n        const value = caches.map((cache) => cache.value);\n        return { state: \"value\", value, isStale, isLoading };\n      }\n      return { state: \"empty\", isLoading };\n    },\n    get() {\n      return Promise.all(resources.map((resource) => resource.get()));\n    }\n  };\n}\nexport { Store, StoreScope, combineResources, useReadResource, useResource, useStoreState };\n//# sourceMappingURL=react.js.map\n","export function throttle<Args extends any[]>(\n  function_: (...args: Args) => void,\n  ms: number,\n): { (...args: Args): void; flush(): void; cancel(): void } {\n  let last = 0;\n  let lastArgs: Args | undefined;\n  let timeout: ReturnType<typeof setTimeout> | undefined;\n\n  function run() {\n    const args = lastArgs;\n\n    last = Date.now();\n    lastArgs = undefined;\n    timeout = undefined;\n\n    function_(...args!);\n  }\n\n  return Object.assign(\n    function (...args: Args) {\n      const now = Date.now();\n      lastArgs = args;\n\n      if (timeout) {\n        // do nothing\n      } else if (now < last + ms) {\n        timeout = setTimeout(run, last + ms - now);\n      } else {\n        run();\n      }\n    },\n    {\n      flush() {\n        if (lastArgs) {\n          run();\n        }\n      },\n\n      cancel() {\n        if (timeout) {\n          clearTimeout(timeout);\n        }\n      },\n    },\n  );\n}\n","import { css } from '@emotion/react';\n\nconst cell = css({\n  padding: `calc(var(--spacing) * 0.1) calc(2 * var(--spacing))`,\n  display: 'flex',\n  alignItems: 'center',\n  borderBottom: '1px solid var(--table-border-light-color)',\n  whiteSpace: 'nowrap',\n  overflow: 'hidden',\n  minHeight: 5,\n\n  '&:empty': {\n    padding: 0,\n  },\n});\n\nexport const defaultClasses = {\n  table: css({\n    position: 'relative',\n    display: 'grid',\n    color: 'var(--table-text-color)',\n  }),\n\n  cell,\n\n  cellFill: css({\n    borderBottom: '1px solid var(--table-border-light-color)',\n  }),\n\n  headerCell: css(cell, {\n    borderBottom: '1px solid var(--table-border-color)',\n    background: 'var(--table-background-color)',\n\n    '&:not(:empty)': {\n      padding: `var(--spacing) 0 var(--spacing) calc(2 * var(--spacing))`,\n    },\n  }),\n\n  footerCell: css(cell, {\n    padding: `var(--spacing) calc(2 * var(--spacing))`,\n    borderTop: '1px solid var(--table-border-color)',\n    borderBottom: 'none',\n    background: 'var(--table-background-color)',\n  }),\n\n  firstCell: css({\n    justifyContent: 'start',\n  }),\n\n  sticky: css({\n    position: 'sticky',\n    top: 0,\n    zIndex: 2,\n  }),\n\n  stickyBottom: css({\n    position: 'sticky',\n    bottom: 0,\n    zIndex: 2,\n  }),\n\n  headerFill: css({\n    borderBottom: '1px solid var(--table-border-color)',\n    background: 'var(--table-background-color)',\n  }),\n\n  footerFill: css({\n    borderTop: '1px solid var(--table-border-color)',\n    background: 'var(--table-background-color)',\n  }),\n\n  text: css({\n    minWidth: 0,\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n  }),\n\n  card: css({\n    borderRadius: 4,\n    boxShadow: '0px 3px 14px 2px rgb(0 0 0 / 12%)',\n    background: 'var(--table-background-color)',\n  }),\n\n  clearFiltersButton: css({\n    padding: `0 calc(2 * var(--spacing))`,\n    fontWeight: 'bold',\n    position: 'sticky',\n    left: 0,\n    maxWidth: 'fit-content',\n    gridColumn: '2/-1',\n    button: {\n      color: 'var(--primaryMain) !important',\n      border: 'solid 1px',\n      borderColor: 'var(--primaryMain) !important',\n      margin: 'var(--spacing)',\n    },\n  }),\n\n  details: css(cell, {\n    gridColumn: '1 / -1',\n    whiteSpace: 'normal',\n  }),\n};\n","import { useLayoutEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { throttle } from '../../misc/throttle';\nimport type { TableTheme } from '../../types';\nimport { defaultClasses } from './defaultClasses';\n\nconst MAX_OFFSET = 20;\n\nexport const Popover: TableTheme['components']['Popover'] = ({\n  anchorEl,\n  open,\n  hidden,\n  onClose,\n  children,\n  className,\n  backdropClassName,\n  align,\n}) => {\n  const probe = useRef<HTMLDivElement>(null);\n  const backdrop = useRef<HTMLDivElement>(null);\n  const popper = useRef<HTMLDivElement>(null);\n\n  useLayoutEffect(() => {\n    if (!open) {\n      return;\n    }\n\n    function check() {\n      const marginLeft = parseFloat(getComputedStyle(popper.current ?? document.body).marginLeft);\n      const marginRight = parseFloat(getComputedStyle(popper.current ?? document.body).marginRight);\n      const marginTop = parseFloat(getComputedStyle(popper.current ?? document.body).marginTop);\n      const marginBottom = parseFloat(\n        getComputedStyle(popper.current ?? document.body).marginBottom,\n      );\n      popper.current?.style.setProperty('--margin-x', `${marginLeft + marginRight}px`);\n      popper.current?.style.setProperty('--margin-y', `${marginTop + marginBottom}px`);\n\n      if (hidden) {\n        popper.current?.style.setProperty('visibility', 'hidden');\n        return;\n      }\n\n      const viewportWidth = window.visualViewport?.width ?? window.innerWidth;\n      const viewportHeight = window.visualViewport?.height ?? window.innerHeight;\n      const { width: popperWidth = 0, height: popperHeight = 0 } =\n        popper.current?.getBoundingClientRect() ?? {};\n\n      const next = {\n        left: 0,\n        top: 0,\n      };\n\n      if (anchorEl) {\n        const bb = anchorEl.getBoundingClientRect();\n\n        if (align === 'center') {\n          next.left = bb.left + bb.width / 2 - popperWidth / 2;\n        } else {\n          next.left =\n            bb.left -\n            Math.min(popperWidth ? popperWidth / 2 : Number.POSITIVE_INFINITY, MAX_OFFSET);\n        }\n\n        next.top = bb.bottom;\n      } else {\n        next.left = (viewportWidth - popperWidth) / 2;\n        next.top = (viewportHeight - popperHeight) / 2;\n      }\n\n      if (next.left > viewportWidth - popperWidth - marginLeft - marginRight) {\n        next.left = viewportWidth - popperWidth - marginLeft - marginRight;\n      }\n      if (next.left < marginLeft) {\n        next.left = marginLeft;\n      }\n      if (next.top > viewportHeight - popperHeight - marginTop - marginBottom) {\n        next.top = viewportHeight - popperHeight - marginTop - marginBottom;\n      }\n      if (next.top < marginTop) {\n        next.top = marginTop;\n      }\n\n      popper.current?.style.setProperty('left', `${next.left}px`);\n      popper.current?.style.setProperty('top', `${next.top}px`);\n      popper.current?.style.setProperty('visibility', 'visible');\n    }\n    const checkThrottled = throttle(check, 16);\n    check();\n\n    const handle = setInterval(checkThrottled, 1000);\n    window.addEventListener('resize', checkThrottled);\n    window.addEventListener('scroll', checkThrottled, true);\n\n    return () => {\n      clearInterval(handle);\n      window.removeEventListener('resize', checkThrottled);\n      window.removeEventListener('scroll', checkThrottled, true);\n    };\n  }, [anchorEl, open, hidden, align]);\n\n  useLayoutEffect(() => {\n    if (!open) return;\n\n    const ancestors = [];\n    for (let node = probe.current?.parentElement; node; node = node.parentElement) {\n      ancestors.push(node);\n    }\n\n    for (const node of ancestors.reverse()) {\n      const value = document.defaultView?.getComputedStyle(node).getPropertyValue('z-index');\n\n      if (value && !Number.isNaN(Number(value))) {\n        const newZIndex = Number(value) + 1;\n\n        if (\n          backdrop.current &&\n          !(\n            Number(\n              document.defaultView?.getComputedStyle(backdrop.current).getPropertyValue('z-index'),\n            ) > newZIndex\n          )\n        ) {\n          backdrop.current?.style.setProperty('z-index', newZIndex.toString());\n        }\n\n        if (\n          popper.current &&\n          !(\n            Number(\n              document.defaultView?.getComputedStyle(popper.current).getPropertyValue('z-index'),\n            ) >\n            newZIndex + 1\n          )\n        ) {\n          popper.current?.style.setProperty('z-index', (newZIndex + 1).toString());\n        }\n        return;\n      }\n    }\n  }, [anchorEl, open]);\n\n  if (!open) return null;\n\n  return (\n    <>\n      <div\n        ref={probe}\n        css={{\n          display: 'none',\n        }}\n      />\n\n      {createPortal(\n        <>\n          <div\n            ref={backdrop}\n            className={backdropClassName}\n            css={[\n              {\n                position: 'fixed',\n                left: 0,\n                right: 0,\n                top: 0,\n                bottom: 0,\n              },\n              hidden && { display: 'none' },\n            ]}\n            onClick={() => onClose()}\n          />\n\n          <div\n            ref={popper}\n            className={className}\n            css={[\n              defaultClasses.card,\n              {\n                position: 'fixed',\n                width: 'max-content',\n                maxWidth: [\n                  `calc(100vw - (100vw - 100%) - var(--margin-x))`,\n                  `calc(100dvw - (100dvw - 100%) - var(--margin-x))`,\n                ],\n                maxHeight: [\n                  `calc(100vh - (100vh - 100%) - var(--margin-x))`,\n                  `calc(100dvh - (100dvh - 100%) - var(--margin-x))`,\n                ],\n                margin: 10,\n                zIndex: 1,\n                overflowY: 'auto',\n                color: 'var(--table-text-color)',\n                visibility: 'hidden',\n              },\n              hidden && { display: 'none' },\n            ]}\n          >\n            {children}\n          </div>\n        </>,\n        document.body,\n      )}\n    </>\n  );\n};\n","import { Store } from 'schummar-state/react';\nimport type { PartialTableTheme } from '../types';\n\nexport const globalTableTheme = new Store<PartialTableTheme>({});\n\nexport function configureTableTheme(tableTheme: PartialTableTheme) {\n  globalTableTheme.set(tableTheme);\n}\n\nexport function mergeThemes<T>(...themes: PartialTableTheme<T>[]): PartialTableTheme<T> {\n  return {\n    text: Object.assign({}, ...themes.map((theme) => theme.text)),\n    classes: Object.assign({}, ...themes.map((theme) => theme.classes)),\n    styles: Object.assign({}, ...themes.map((theme) => theme.styles)),\n    components: Object.assign({}, ...themes.map((theme) => theme.components)),\n    icons: Object.assign({}, ...themes.map((theme) => theme.icons)),\n    colors: {\n      primary: Object.assign({}, ...themes.map((theme) => theme.colors?.primary)),\n      secondary: Object.assign({}, ...themes.map((theme) => theme.colors?.secondary)),\n      blocked: Object.assign({}, ...themes.map((theme) => theme.colors?.blocked)),\n      background: themes\n        .map((theme) => theme.colors?.background)\n        .reverse()\n        .find((x) => x !== undefined),\n      text: themes\n        .map((theme) => theme.colors?.text)\n        .reverse()\n        .find((x) => x !== undefined),\n      border: themes\n        .map((theme) => theme.colors?.border)\n        .reverse()\n        .find((x) => x !== undefined),\n      borderLight: themes\n        .map((theme) => theme.colors?.borderLight)\n        .reverse()\n        .find((x) => x !== undefined),\n    },\n    spacing: themes\n      .map((theme) => theme.spacing)\n      .reverse()\n      .find((x) => x !== undefined),\n  };\n}\n","import { ReactNode, createContext, useContext } from 'react';\nimport CsvExporter from '../exporters/csvExporter';\nimport { ExporterEntry } from '../exporters/exporter';\nimport { PartialTableTheme } from '../types';\n\nexport interface TableSettingsContextType {\n  theme: PartialTableTheme;\n  exporters: ExporterEntry[];\n}\n\nexport const TableSettingsContext = createContext<TableSettingsContextType>({\n  theme: {},\n  exporters: [\n    { action: 'copy', exporter: new CsvExporter() },\n    { action: 'download', exporter: new CsvExporter() },\n  ],\n});\n\nexport function TableSettingsProvider({\n  theme,\n  exporters,\n  additionalExporters,\n  children,\n}: Partial<TableSettingsContextType> & {\n  additionalExporters?: ExporterEntry[];\n  children?: ReactNode;\n}) {\n  const inherited = useContext(TableSettingsContext);\n  theme ??= inherited.theme;\n  exporters ??= inherited.exporters;\n\n  if (additionalExporters) {\n    exporters = [...exporters, ...additionalExporters];\n  }\n\n  return (\n    <TableSettingsContext.Provider\n      value={{\n        theme,\n        exporters,\n      }}\n    >\n      {children}\n    </TableSettingsContext.Provider>\n  );\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}