import { i as a } from "./init-DjUOC4st.mjs";
class o extends Map {
  constructor(n, t = g) {
    if (super(), Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: t } }), n != null) for (const [r, s] of n) this.set(r, s);
  }
  get(n) {
    return super.get(c(this, n));
  }
  has(n) {
    return super.has(c(this, n));
  }
  set(n, t) {
    return super.set(l(this, n), t);
  }
  delete(n) {
    return super.delete(p(this, n));
  }
}
function c({ _intern: e, _key: n }, t) {
  const r = n(t);
  return e.has(r) ? e.get(r) : t;
}
function l({ _intern: e, _key: n }, t) {
  const r = n(t);
  return e.has(r) ? e.get(r) : (e.set(r, t), t);
}
function p({ _intern: e, _key: n }, t) {
  const r = n(t);
  return e.has(r) && (t = e.get(r), e.delete(r)), t;
}
function g(e) {
  return e !== null && typeof e == "object" ? e.valueOf() : e;
}
const f = Symbol("implicit");
function h() {
  var e = new o(), n = [], t = [], r = f;
  function s(u) {
    let i = e.get(u);
    if (i === void 0) {
      if (r !== f) return r;
      e.set(u, i = n.push(u) - 1);
    }
    return t[i % t.length];
  }
  return s.domain = function(u) {
    if (!arguments.length) return n.slice();
    n = [], e = new o();
    for (const i of u)
      e.has(i) || e.set(i, n.push(i) - 1);
    return s;
  }, s.range = function(u) {
    return arguments.length ? (t = Array.from(u), s) : t.slice();
  }, s.unknown = function(u) {
    return arguments.length ? (r = u, s) : r;
  }, s.copy = function() {
    return h(n, t).unknown(r);
  }, a.apply(s, arguments), s;
}
export {
  h as o
};
