ode-explorer 1.4.2-develop.202403201822 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -634,10 +634,7 @@ function pushPath(object, path2, newValue, concat) {
634
634
  k: k2
635
635
  } = getLastOfPath(object, path2, Object);
636
636
  obj[k2] = obj[k2] || [];
637
- if (concat)
638
- obj[k2] = obj[k2].concat(newValue);
639
- if (!concat)
640
- obj[k2].push(newValue);
637
+ obj[k2].push(newValue);
641
638
  }
642
639
  function getPath(object, path2) {
643
640
  const {
@@ -3726,8 +3723,6 @@ function _defineProperties(target, props) {
3726
3723
  function _createClass(Constructor, protoProps, staticProps) {
3727
3724
  if (protoProps)
3728
3725
  _defineProperties(Constructor.prototype, protoProps);
3729
- if (staticProps)
3730
- _defineProperties(Constructor, staticProps);
3731
3726
  Object.defineProperty(Constructor, "prototype", { writable: false });
3732
3727
  return Constructor;
3733
3728
  }
@@ -3749,12 +3744,12 @@ function _toPrimitive(input, hint) {
3749
3744
  return input;
3750
3745
  var prim = input[Symbol.toPrimitive];
3751
3746
  if (prim !== void 0) {
3752
- var res = prim.call(input, hint || "default");
3747
+ var res = prim.call(input, hint);
3753
3748
  if (_typeof(res) !== "object")
3754
3749
  return res;
3755
3750
  throw new TypeError("@@toPrimitive must return a primitive value.");
3756
3751
  }
3757
- return (hint === "string" ? String : Number)(input);
3752
+ return String(input);
3758
3753
  }
3759
3754
  var getDefaults$1 = function getDefaults() {
3760
3755
  return {
@@ -4101,7 +4096,7 @@ class ReportNamespaces {
4101
4096
  const usePrevious = (value, ignore) => {
4102
4097
  const ref2 = reactExports.useRef();
4103
4098
  reactExports.useEffect(() => {
4104
- ref2.current = ignore ? ref2.current : value;
4099
+ ref2.current = value;
4105
4100
  }, [value, ignore]);
4106
4101
  return ref2.current;
4107
4102
  };
@@ -6496,9 +6491,6 @@ var QueryClientContext = reactExports.createContext(
6496
6491
  );
6497
6492
  var useQueryClient = (queryClient2) => {
6498
6493
  const client = reactExports.useContext(QueryClientContext);
6499
- if (queryClient2) {
6500
- return queryClient2;
6501
- }
6502
6494
  if (!client) {
6503
6495
  throw new Error("No QueryClient set, use QueryClientProvider to set one");
6504
6496
  }
@@ -6573,7 +6565,7 @@ var fetchOptimistic = (defaultedOptions, observer, errorResetBoundary) => observ
6573
6565
  errorResetBoundary.clearReset();
6574
6566
  });
6575
6567
  function useBaseQuery(options, Observer2, queryClient2) {
6576
- const client = useQueryClient(queryClient2);
6568
+ const client = useQueryClient();
6577
6569
  const isRestoring = useIsRestoring();
6578
6570
  const errorResetBoundary = useQueryErrorResetBoundary();
6579
6571
  const defaultedOptions = client.defaultQueryOptions(options);
@@ -6617,10 +6609,10 @@ function useBaseQuery(options, Observer2, queryClient2) {
6617
6609
  return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;
6618
6610
  }
6619
6611
  function useQuery(options, queryClient2) {
6620
- return useBaseQuery(options, QueryObserver, queryClient2);
6612
+ return useBaseQuery(options, QueryObserver);
6621
6613
  }
6622
6614
  function useMutation(options, queryClient2) {
6623
- const client = useQueryClient(queryClient2);
6615
+ const client = useQueryClient();
6624
6616
  const [observer] = reactExports.useState(
6625
6617
  () => new MutationObserver$1(
6626
6618
  client,
@@ -6655,8 +6647,7 @@ function useInfiniteQuery(options, queryClient2) {
6655
6647
  return useBaseQuery(
6656
6648
  options,
6657
6649
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
6658
- InfiniteQueryObserver,
6659
- queryClient2
6650
+ InfiniteQueryObserver
6660
6651
  );
6661
6652
  }
6662
6653
  const SvgAlertCircle = ({
@@ -9282,11 +9273,11 @@ function j$1(e2, t2) {
9282
9273
  let l2 = arguments;
9283
9274
  function a2(n2, o2) {
9284
9275
  let c6 = Object.assign({}, n2), s2 = c6.className || a2.className;
9285
- r2.p = Object.assign({ theme: f$1 && f$1() }, c6), r2.o = / *go\d+/.test(s2), c6.className = u$4.apply(r2, l2) + (s2 ? " " + s2 : ""), t2 && (c6.ref = o2);
9276
+ r2.p = Object.assign({ theme: f$1 && f$1() }, c6), r2.o = / *go\d+/.test(s2), c6.className = u$4.apply(r2, l2) + (s2 ? " " + s2 : "");
9286
9277
  let i2 = e2;
9287
9278
  return e2[0] && (i2 = c6.as || e2, delete c6.as), g$1 && i2[0] && g$1(c6), d$1(i2, c6);
9288
9279
  }
9289
- return t2 ? t2(a2) : a2;
9280
+ return a2;
9290
9281
  };
9291
9282
  }
9292
9283
  var W$2 = (e2) => typeof e2 == "function", T$1 = (e2, t2) => W$2(e2) ? e2(t2) : e2;
@@ -18511,12 +18502,21 @@ function getPaddingObject(padding) {
18511
18502
  };
18512
18503
  }
18513
18504
  function rectToClientRect$1(rect) {
18505
+ const {
18506
+ x: x2,
18507
+ y: y2,
18508
+ width,
18509
+ height
18510
+ } = rect;
18514
18511
  return {
18515
- ...rect,
18516
- top: rect.y,
18517
- left: rect.x,
18518
- right: rect.x + rect.width,
18519
- bottom: rect.y + rect.height
18512
+ width,
18513
+ height,
18514
+ top: y2,
18515
+ left: x2,
18516
+ right: x2 + width,
18517
+ bottom: y2 + height,
18518
+ x: x2,
18519
+ y: y2
18520
18520
  };
18521
18521
  }
18522
18522
  function computeCoordsFromPlacement(_ref, placement, rtl) {
@@ -18687,9 +18687,10 @@ async function detectOverflow$1(state, options) {
18687
18687
  strategy
18688
18688
  }));
18689
18689
  const rect = elementContext === "floating" ? {
18690
- ...rects.floating,
18691
18690
  x: x2,
18692
- y: y2
18691
+ y: y2,
18692
+ width: rects.floating.width,
18693
+ height: rects.floating.height
18693
18694
  } : rects.reference;
18694
18695
  const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));
18695
18696
  const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {
@@ -18844,7 +18845,7 @@ async function convertValueToCoords(state, options) {
18844
18845
  y: crossAxis * crossAxisMulti
18845
18846
  };
18846
18847
  }
18847
- const offset$2 = function(options) {
18848
+ const offset$3 = function(options) {
18848
18849
  if (options === void 0) {
18849
18850
  options = 0;
18850
18851
  }
@@ -19001,9 +19002,8 @@ function getContainingBlock$1(element) {
19001
19002
  while (isHTMLElement$1(currentNode) && !isLastTraversableNode(currentNode)) {
19002
19003
  if (isContainingBlock(currentNode)) {
19003
19004
  return currentNode;
19004
- } else {
19005
- currentNode = getParentNode$1(currentNode);
19006
19005
  }
19006
+ currentNode = getParentNode$1(currentNode);
19007
19007
  }
19008
19008
  return null;
19009
19009
  }
@@ -19441,12 +19441,14 @@ function getOffsetParent$1(element, polyfill2) {
19441
19441
  const getElementRects = async function(data) {
19442
19442
  const getOffsetParentFn = this.getOffsetParent || getOffsetParent$1;
19443
19443
  const getDimensionsFn = this.getDimensions;
19444
+ const floatingDimensions = await getDimensionsFn(data.floating);
19444
19445
  return {
19445
19446
  reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
19446
19447
  floating: {
19447
19448
  x: 0,
19448
19449
  y: 0,
19449
- ...await getDimensionsFn(data.floating)
19450
+ width: floatingDimensions.width,
19451
+ height: floatingDimensions.height
19450
19452
  }
19451
19453
  };
19452
19454
  };
@@ -19514,7 +19516,7 @@ function observeMove(element, onMove) {
19514
19516
  if (!ratio) {
19515
19517
  timeoutId = setTimeout(() => {
19516
19518
  refresh(false, 1e-7);
19517
- }, 100);
19519
+ }, 1e3);
19518
19520
  } else {
19519
19521
  refresh(false, ratio);
19520
19522
  }
@@ -19603,6 +19605,7 @@ function autoUpdate(reference2, floating, update2, options) {
19603
19605
  }
19604
19606
  };
19605
19607
  }
19608
+ const offset$2 = offset$3;
19606
19609
  const flip$2 = flip$3;
19607
19610
  const size = size$1;
19608
19611
  const computePosition = (reference2, floating, options) => {
@@ -22893,7 +22896,7 @@ function useSpring(props, deps) {
22893
22896
  const [[values], ref2] = useSprings(
22894
22897
  1,
22895
22898
  isFn ? props : [props],
22896
- isFn ? deps || [] : deps
22899
+ isFn ? [] : deps
22897
22900
  );
22898
22901
  return isFn || arguments.length == 2 ? [values, ref2] : values;
22899
22902
  }
@@ -25841,10 +25844,9 @@ function elementParents(el2, selector) {
25841
25844
  }
25842
25845
  function elementOuterSize(el2, size2, includeMargins) {
25843
25846
  const window2 = getWindow();
25844
- if (includeMargins) {
25847
+ {
25845
25848
  return el2[size2 === "width" ? "offsetWidth" : "offsetHeight"] + parseFloat(window2.getComputedStyle(el2, null).getPropertyValue(size2 === "width" ? "margin-right" : "margin-top")) + parseFloat(window2.getComputedStyle(el2, null).getPropertyValue(size2 === "width" ? "margin-left" : "margin-bottom"));
25846
25849
  }
25847
- return el2.offsetWidth;
25848
25850
  }
25849
25851
  function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
25850
25852
  if (swiper.params.createElements) {
@@ -25985,7 +25987,7 @@ function Pagination(_ref) {
25985
25987
  let lastIndex;
25986
25988
  let midIndex;
25987
25989
  if (params.dynamicBullets) {
25988
- bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? "width" : "height", true);
25990
+ bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? "width" : "height");
25989
25991
  el2.forEach((subEl) => {
25990
25992
  subEl.style[swiper.isHorizontal() ? "width" : "height"] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
25991
25993
  });
@@ -26798,7 +26800,7 @@ function updateSlides() {
26798
26800
  slide2.style.webkitTransform = "none";
26799
26801
  }
26800
26802
  if (params.roundLengths) {
26801
- slideSize = swiper.isHorizontal() ? elementOuterSize(slide2, "width", true) : elementOuterSize(slide2, "height", true);
26803
+ slideSize = swiper.isHorizontal() ? elementOuterSize(slide2, "width") : elementOuterSize(slide2, "height");
26802
26804
  } else {
26803
26805
  const width = getDirectionPropertyValue(slideStyles, "width");
26804
26806
  const paddingLeft = getDirectionPropertyValue(slideStyles, "padding-left");
@@ -33825,7 +33827,7 @@ const longest_match = (s2, cur_match) => {
33825
33827
  let len;
33826
33828
  let best_len = s2.prev_length;
33827
33829
  let nice_match = s2.nice_match;
33828
- const limit = s2.strstart > s2.w_size - MIN_LOOKAHEAD ? s2.strstart - (s2.w_size - MIN_LOOKAHEAD) : 0;
33830
+ const limit2 = s2.strstart > s2.w_size - MIN_LOOKAHEAD ? s2.strstart - (s2.w_size - MIN_LOOKAHEAD) : 0;
33829
33831
  const _win = s2.window;
33830
33832
  const wmask = s2.w_mask;
33831
33833
  const prev = s2.prev;
@@ -33858,7 +33860,7 @@ const longest_match = (s2, cur_match) => {
33858
33860
  scan_end1 = _win[scan + best_len - 1];
33859
33861
  scan_end = _win[scan + best_len];
33860
33862
  }
33861
- } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
33863
+ } while ((cur_match = prev[cur_match & wmask]) > limit2 && --chain_length !== 0);
33862
33864
  if (best_len <= s2.lookahead) {
33863
33865
  return best_len;
33864
33866
  }
@@ -38191,7 +38193,7 @@ var concatty = function concatty2(a2, b2) {
38191
38193
  };
38192
38194
  var slicy = function slicy2(arrLike, offset2) {
38193
38195
  var arr2 = [];
38194
- for (var i2 = offset2 || 0, j2 = 0; i2 < arrLike.length; i2 += 1, j2 += 1) {
38196
+ for (var i2 = offset2, j2 = 0; i2 < arrLike.length; i2 += 1, j2 += 1) {
38195
38197
  arr2[j2] = arrLike[i2];
38196
38198
  }
38197
38199
  return arr2;
@@ -39469,6 +39471,7 @@ var decode = function(str, decoder, charset) {
39469
39471
  return strWithoutPlus;
39470
39472
  }
39471
39473
  };
39474
+ var limit = 1024;
39472
39475
  var encode = function encode2(str, defaultEncoder, charset, kind, format) {
39473
39476
  if (str.length === 0) {
39474
39477
  return str;
@@ -39485,27 +39488,32 @@ var encode = function encode2(str, defaultEncoder, charset, kind, format) {
39485
39488
  });
39486
39489
  }
39487
39490
  var out = "";
39488
- for (var i2 = 0; i2 < string.length; ++i2) {
39489
- var c6 = string.charCodeAt(i2);
39490
- if (c6 === 45 || c6 === 46 || c6 === 95 || c6 === 126 || c6 >= 48 && c6 <= 57 || c6 >= 65 && c6 <= 90 || c6 >= 97 && c6 <= 122 || format === formats$3.RFC1738 && (c6 === 40 || c6 === 41)) {
39491
- out += string.charAt(i2);
39492
- continue;
39493
- }
39494
- if (c6 < 128) {
39495
- out = out + hexTable[c6];
39496
- continue;
39497
- }
39498
- if (c6 < 2048) {
39499
- out = out + (hexTable[192 | c6 >> 6] + hexTable[128 | c6 & 63]);
39500
- continue;
39501
- }
39502
- if (c6 < 55296 || c6 >= 57344) {
39503
- out = out + (hexTable[224 | c6 >> 12] + hexTable[128 | c6 >> 6 & 63] + hexTable[128 | c6 & 63]);
39504
- continue;
39491
+ for (var j2 = 0; j2 < string.length; j2 += limit) {
39492
+ var segment = string.length >= limit ? string.slice(j2, j2 + limit) : string;
39493
+ var arr2 = [];
39494
+ for (var i2 = 0; i2 < segment.length; ++i2) {
39495
+ var c6 = segment.charCodeAt(i2);
39496
+ if (c6 === 45 || c6 === 46 || c6 === 95 || c6 === 126 || c6 >= 48 && c6 <= 57 || c6 >= 65 && c6 <= 90 || c6 >= 97 && c6 <= 122 || format === formats$3.RFC1738 && (c6 === 40 || c6 === 41)) {
39497
+ arr2[arr2.length] = segment.charAt(i2);
39498
+ continue;
39499
+ }
39500
+ if (c6 < 128) {
39501
+ arr2[arr2.length] = hexTable[c6];
39502
+ continue;
39503
+ }
39504
+ if (c6 < 2048) {
39505
+ arr2[arr2.length] = hexTable[192 | c6 >> 6] + hexTable[128 | c6 & 63];
39506
+ continue;
39507
+ }
39508
+ if (c6 < 55296 || c6 >= 57344) {
39509
+ arr2[arr2.length] = hexTable[224 | c6 >> 12] + hexTable[128 | c6 >> 6 & 63] + hexTable[128 | c6 & 63];
39510
+ continue;
39511
+ }
39512
+ i2 += 1;
39513
+ c6 = 65536 + ((c6 & 1023) << 10 | segment.charCodeAt(i2) & 1023);
39514
+ arr2[arr2.length] = hexTable[240 | c6 >> 18] + hexTable[128 | c6 >> 12 & 63] + hexTable[128 | c6 >> 6 & 63] + hexTable[128 | c6 & 63];
39505
39515
  }
39506
- i2 += 1;
39507
- c6 = 65536 + ((c6 & 1023) << 10 | string.charCodeAt(i2) & 1023);
39508
- out += hexTable[240 | c6 >> 18] + hexTable[128 | c6 >> 12 & 63] + hexTable[128 | c6 >> 6 & 63] + hexTable[128 | c6 & 63];
39516
+ out += arr2.join("");
39509
39517
  }
39510
39518
  return out;
39511
39519
  };
@@ -39847,7 +39855,7 @@ var defaults$1 = {
39847
39855
  charset: "utf-8",
39848
39856
  charsetSentinel: false,
39849
39857
  comma: false,
39850
- decodeDotInKeys: true,
39858
+ decodeDotInKeys: false,
39851
39859
  decoder: utils.decode,
39852
39860
  delimiter: "&",
39853
39861
  depth: 5,
@@ -39875,8 +39883,8 @@ var charsetSentinel = "utf8=%E2%9C%93";
39875
39883
  var parseValues = function parseQueryStringValues(str, options) {
39876
39884
  var obj = { __proto__: null };
39877
39885
  var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
39878
- var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
39879
- var parts = cleanStr.split(options.delimiter, limit);
39886
+ var limit2 = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
39887
+ var parts = cleanStr.split(options.delimiter, limit2);
39880
39888
  var skipIndex = -1;
39881
39889
  var i2;
39882
39890
  var charset = options.charset;
@@ -40617,7 +40625,6 @@ function normalizeStringPosix(path2, allowAboveRoot) {
40617
40625
  continue;
40618
40626
  }
40619
40627
  }
40620
- allowAboveRoot && (res.length > 0 ? res += "/.." : res = "..", lastSegmentLength = 2);
40621
40628
  } else
40622
40629
  res.length > 0 ? res += `/${path2.slice(lastSlash + 1, i2)}` : res = path2.slice(lastSlash + 1, i2), lastSegmentLength = i2 - lastSlash - 1;
40623
40630
  lastSlash = i2, dots = 0;
@@ -40704,7 +40711,7 @@ const path = {
40704
40711
  const isAbsolute = path2.startsWith("/");
40705
40712
  this.hasProtocol(path2) && (protocol = this.rootname(path2), path2 = path2.slice(protocol.length));
40706
40713
  const trailingSeparator = path2.endsWith("/");
40707
- return path2 = normalizeStringPosix(path2, false), path2.length > 0 && trailingSeparator && (path2 += "/"), isAbsolute ? `/${path2}` : protocol + path2;
40714
+ return path2 = normalizeStringPosix(path2), path2.length > 0 && trailingSeparator && (path2 += "/"), isAbsolute ? `/${path2}` : protocol + path2;
40708
40715
  },
40709
40716
  /**
40710
40717
  * Determines if path is an absolute path.
@@ -40730,7 +40737,7 @@ const path = {
40730
40737
  joined = arg;
40731
40738
  else {
40732
40739
  const prevArg = segments[i2 - 1] ?? "";
40733
- this.extname(prevArg) ? joined += `/../${arg}` : joined += `/${arg}`;
40740
+ this.joinExtensions.includes(this.extname(prevArg).toLowerCase()) ? joined += `/../${arg}` : joined += `/${arg}`;
40734
40741
  }
40735
40742
  }
40736
40743
  return joined === void 0 ? "." : this.normalize(joined);
@@ -40855,7 +40862,8 @@ const path = {
40855
40862
  return startDot === -1 || end2 === -1 || preDotState === 0 || preDotState === 1 && startDot === end2 - 1 && startDot === startPart + 1 ? end2 !== -1 && (startPart === 0 && isAbsolute ? ret.base = ret.name = path2.slice(1, end2) : ret.base = ret.name = path2.slice(startPart, end2)) : (startPart === 0 && isAbsolute ? (ret.name = path2.slice(1, startDot), ret.base = path2.slice(1, end2)) : (ret.name = path2.slice(startPart, startDot), ret.base = path2.slice(startPart, end2)), ret.ext = path2.slice(startDot, end2)), ret.dir = this.dirname(path2), ret;
40856
40863
  },
40857
40864
  sep: "/",
40858
- delimiter: ":"
40865
+ delimiter: ":",
40866
+ joinExtensions: [".html"]
40859
40867
  };
40860
40868
  let promise;
40861
40869
  async function detectVideoAlphaMode() {
@@ -41597,8 +41605,9 @@ const normalizeExtension = (ext) => {
41597
41605
  add(...extensions2) {
41598
41606
  return extensions2.map(normalizeExtension).forEach((ext) => {
41599
41607
  ext.type.forEach((type2) => {
41608
+ var _a2, _b2;
41600
41609
  const handlers = this._addHandlers, queue = this._queue;
41601
- handlers[type2] ? handlers[type2](ext) : (queue[type2] = queue[type2] || [], queue[type2].push(ext));
41610
+ handlers[type2] ? (_a2 = handlers[type2]) == null ? void 0 : _a2.call(handlers, ext) : (queue[type2] = queue[type2] || [], (_b2 = queue[type2]) == null ? void 0 : _b2.push(ext));
41602
41611
  });
41603
41612
  }), this;
41604
41613
  },
@@ -41610,12 +41619,13 @@ const normalizeExtension = (ext) => {
41610
41619
  * @returns {PIXI.extensions} For chaining.
41611
41620
  */
41612
41621
  handle(type2, onAdd, onRemove) {
41622
+ var _a2;
41613
41623
  const addHandlers = this._addHandlers, removeHandlers = this._removeHandlers;
41614
41624
  if (addHandlers[type2] || removeHandlers[type2])
41615
41625
  throw new Error(`Extension type ${type2} already has a handler`);
41616
41626
  addHandlers[type2] = onAdd, removeHandlers[type2] = onRemove;
41617
41627
  const queue = this._queue;
41618
- return queue[type2] && (queue[type2].forEach((ext) => onAdd(ext)), delete queue[type2]), this;
41628
+ return queue[type2] && ((_a2 = queue[type2]) == null ? void 0 : _a2.forEach((ext) => onAdd(ext)), delete queue[type2]), this;
41619
41629
  },
41620
41630
  /**
41621
41631
  * Handle a type, but using a map by `name` property.
@@ -41627,10 +41637,10 @@ const normalizeExtension = (ext) => {
41627
41637
  return this.handle(
41628
41638
  type2,
41629
41639
  (extension) => {
41630
- map2[extension.name] = extension.ref;
41640
+ extension.name && (map2[extension.name] = extension.ref);
41631
41641
  },
41632
41642
  (extension) => {
41633
- delete map2[extension.name];
41643
+ extension.name && delete map2[extension.name];
41634
41644
  }
41635
41645
  );
41636
41646
  },
@@ -41849,7 +41859,7 @@ function autoDetectResource(source, options) {
41849
41859
  }
41850
41860
  class Runner {
41851
41861
  /**
41852
- * @param name - The function name that will be executed on the listeners added to this Runner.
41862
+ * @param {string} name - The function name that will be executed on the listeners added to this Runner.
41853
41863
  */
41854
41864
  constructor(name) {
41855
41865
  this.items = [], this._name = name, this._aliasCount = 0;
@@ -41914,7 +41924,7 @@ class Runner {
41914
41924
  }
41915
41925
  /** Remove all references, don't use after this. */
41916
41926
  destroy() {
41917
- this.removeAll(), this.items = null, this._name = null;
41927
+ this.removeAll(), this.items.length = 0, this._name = "";
41918
41928
  }
41919
41929
  /**
41920
41930
  * `true` if there are no this Runner contains no listeners
@@ -41925,7 +41935,7 @@ class Runner {
41925
41935
  }
41926
41936
  /**
41927
41937
  * The name of the runner.
41928
- * @readonly
41938
+ * @type {string}
41929
41939
  */
41930
41940
  get name() {
41931
41941
  return this._name;
@@ -42106,7 +42116,7 @@ const defaultBufferOptions = {
42106
42116
  alphaMode: ALPHA_MODES.NPM
42107
42117
  }, _BaseTexture = class _BaseTexture2 extends EventEmitter2 {
42108
42118
  /**
42109
- * @param {PIXI.Resource|HTMLImageElement|HTMLVideoElement|ImageBitmap|ICanvas|string} [resource=null] -
42119
+ * @param {PIXI.Resource|PIXI.ImageSource|string} [resource=null] -
42110
42120
  * The current resource to use, for things that aren't Resource objects, will be converted
42111
42121
  * into a Resource.
42112
42122
  * @param options - Collection of options, default options inherited from {@link PIXI.BaseTexture.defaultOptions}.
@@ -42284,7 +42294,7 @@ const defaultBufferOptions = {
42284
42294
  * source is an image url or an image element and not in the base texture
42285
42295
  * cache, it will be created and loaded.
42286
42296
  * @static
42287
- * @param {HTMLImageElement|HTMLVideoElement|ImageBitmap|PIXI.ICanvas|string|string[]} source - The
42297
+ * @param {PIXI.ImageSource|string|string[]} source - The
42288
42298
  * source to create base texture from.
42289
42299
  * @param options - See {@link PIXI.BaseTexture}'s constructor for options.
42290
42300
  * @param {string} [options.pixiIdPrefix=pixiid] - If a source has no id, this is the prefix of the generated id
@@ -45077,7 +45087,8 @@ class ContextSystem {
45077
45087
  etc1: gl2.getExtension("WEBGL_compressed_texture_etc1"),
45078
45088
  pvrtc: gl2.getExtension("WEBGL_compressed_texture_pvrtc") || gl2.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),
45079
45089
  atc: gl2.getExtension("WEBGL_compressed_texture_atc"),
45080
- astc: gl2.getExtension("WEBGL_compressed_texture_astc")
45090
+ astc: gl2.getExtension("WEBGL_compressed_texture_astc"),
45091
+ bptc: gl2.getExtension("EXT_texture_compression_bptc")
45081
45092
  };
45082
45093
  this.webGLVersion === 1 ? Object.assign(this.extensions, common2, {
45083
45094
  drawBuffers: gl2.getExtension("WEBGL_draw_buffers"),
@@ -45313,10 +45324,10 @@ class BaseRenderTexture extends BaseTexture {
45313
45324
  }
45314
45325
  class BaseImageResource extends Resource {
45315
45326
  /**
45316
- * @param {HTMLImageElement|HTMLVideoElement|ImageBitmap|PIXI.ICanvas} source
45327
+ * @param {PIXI.ImageSourcee} source
45317
45328
  */
45318
45329
  constructor(source) {
45319
- const sourceAny = source, width = sourceAny.naturalWidth || sourceAny.videoWidth || sourceAny.width, height = sourceAny.naturalHeight || sourceAny.videoHeight || sourceAny.height;
45330
+ const sourceAny = source, width = sourceAny.naturalWidth || sourceAny.videoWidth || sourceAny.displayWidth || sourceAny.width, height = sourceAny.naturalHeight || sourceAny.videoHeight || sourceAny.displayHeight || sourceAny.height;
45320
45331
  super(width, height), this.source = source, this.noSubImage = false;
45321
45332
  }
45322
45333
  /**
@@ -45333,7 +45344,7 @@ class BaseImageResource extends Resource {
45333
45344
  * @param renderer - Upload to the renderer
45334
45345
  * @param baseTexture - Reference to parent texture
45335
45346
  * @param glTexture
45336
- * @param {HTMLImageElement|HTMLVideoElement|ImageBitmap|PIXI.ICanvas} [source] - (optional)
45347
+ * @param {PIXI.ImageSourcee} [source] - (optional)
45337
45348
  * @returns - true is success
45338
45349
  */
45339
45350
  upload(renderer, baseTexture, glTexture, source) {
@@ -47775,7 +47786,7 @@ class StartupSystem {
47775
47786
  */
47776
47787
  run(options) {
47777
47788
  const { renderer } = this;
47778
- renderer.runners.init.emit(renderer.options), options.hello && console.log(`PixiJS 7.3.2 - ${renderer.rendererLogId} - https://pixijs.com`), renderer.resize(renderer.screen.width, renderer.screen.height);
47789
+ renderer.runners.init.emit(renderer.options), options.hello && console.log(`PixiJS 7.4.2 - ${renderer.rendererLogId} - https://pixijs.com`), renderer.resize(renderer.screen.width, renderer.screen.height);
47779
47790
  }
47780
47791
  destroy() {
47781
47792
  }
@@ -50071,6 +50082,23 @@ _SVGResource.SVG_XML = /^(<\?xml[^?]+\?>)?\s*(<!--[^(-->)]*-->)?\s*\<svg/m, /**
50071
50082
  */
50072
50083
  _SVGResource.SVG_SIZE = /<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;
50073
50084
  let SVGResource = _SVGResource;
50085
+ class VideoFrameResource extends BaseImageResource {
50086
+ /**
50087
+ * @param source - Image element to use
50088
+ */
50089
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
50090
+ constructor(source) {
50091
+ super(source);
50092
+ }
50093
+ /**
50094
+ * Used to auto-detect the type of resource.
50095
+ * @param {*} source - The source object
50096
+ * @returns {boolean} `true` if source is an VideoFrame
50097
+ */
50098
+ static test(source) {
50099
+ return !!globalThis.VideoFrame && source instanceof globalThis.VideoFrame;
50100
+ }
50101
+ }
50074
50102
  const _VideoResource = class _VideoResource2 extends BaseImageResource {
50075
50103
  /**
50076
50104
  * @param {HTMLVideoElement|object|string|Array<string|object>} source - Video element to use.
@@ -50078,7 +50106,8 @@ const _VideoResource = class _VideoResource2 extends BaseImageResource {
50078
50106
  * @param {boolean} [options.autoLoad=true] - Start loading the video immediately
50079
50107
  * @param {boolean} [options.autoPlay=true] - Start playing video immediately
50080
50108
  * @param {number} [options.updateFPS=0] - How many times a second to update the texture from the video.
50081
- * Leave at 0 to update at every render.
50109
+ * If 0, `requestVideoFrameCallback` is used to update the texture.
50110
+ * If `requestVideoFrameCallback` is not available, the texture is updated every render.
50082
50111
  * @param {boolean} [options.crossorigin=true] - Load image using cross origin
50083
50112
  * @param {boolean} [options.loop=false] - Loops the video
50084
50113
  * @param {boolean} [options.muted=false] - Mutes the video audio, useful for autoplay
@@ -50192,7 +50221,8 @@ const _VideoResource = class _VideoResource2 extends BaseImageResource {
50192
50221
  value !== this._autoUpdate && (this._autoUpdate = value, this._configureAutoUpdate());
50193
50222
  }
50194
50223
  /**
50195
- * How many times a second to update the texture from the video. Leave at 0 to update at every render.
50224
+ * How many times a second to update the texture from the video. If 0, `requestVideoFrameCallback` is used to
50225
+ * update the texture. If `requestVideoFrameCallback` is not available, the texture is updated every render.
50196
50226
  * A lower fps can help performance, as updating the texture at 60fps on a 30ps video may not be efficient.
50197
50227
  */
50198
50228
  get updateFPS() {
@@ -50231,6 +50261,7 @@ INSTALLED.push(
50231
50261
  ImageResource,
50232
50262
  CanvasResource,
50233
50263
  VideoResource,
50264
+ VideoFrameResource,
50234
50265
  SVGResource,
50235
50266
  BufferResource,
50236
50267
  CubeResource,
@@ -50715,7 +50746,7 @@ class DisplayObject extends EventEmitter2 {
50715
50746
  return this._zIndex;
50716
50747
  }
50717
50748
  set zIndex(value) {
50718
- this._zIndex = value, this.parent && (this.parent.sortDirty = true);
50749
+ this._zIndex !== value && (this._zIndex = value, this.parent && (this.parent.sortDirty = true));
50719
50750
  }
50720
50751
  /**
50721
50752
  * Indicates if the object is globally visible.
@@ -53917,82 +53948,79 @@ const loadWebFont = {
53917
53948
  }
53918
53949
  };
53919
53950
  extensions$1.add(loadWebFont);
53920
- let UUID = 0, MAX_WORKERS;
53921
- const WHITE_PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=", checkImageBitmapCode = {
53922
- id: "checkImageBitmap",
53923
- code: `
53924
- async function checkImageBitmap()
53925
- {
53926
- try
53927
- {
53928
- if (typeof createImageBitmap !== 'function') return false;
53929
-
53930
- const response = await fetch('${WHITE_PNG}');
53931
- const imageBlob = await response.blob();
53932
- const imageBitmap = await createImageBitmap(imageBlob);
53933
-
53934
- return imageBitmap.width === 1 && imageBitmap.height === 1;
53935
- }
53936
- catch (e)
53937
- {
53938
- return false;
53939
- }
53951
+ const WORKER_CODE$1 = `(function() {
53952
+ "use strict";
53953
+ const WHITE_PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=";
53954
+ async function checkImageBitmap() {
53955
+ try {
53956
+ if (typeof createImageBitmap != "function")
53957
+ return !1;
53958
+ const imageBlob = await (await fetch(WHITE_PNG)).blob(), imageBitmap = await createImageBitmap(imageBlob);
53959
+ return imageBitmap.width === 1 && imageBitmap.height === 1;
53960
+ } catch {
53961
+ return !1;
53940
53962
  }
53941
- checkImageBitmap().then((result) => { self.postMessage(result); });
53942
- `
53943
- }, workerCode = {
53944
- id: "loadImageBitmap",
53945
- code: `
53946
- async function loadImageBitmap(url)
53947
- {
53948
- const response = await fetch(url);
53949
-
53950
- if (!response.ok)
53951
- {
53952
- throw new Error(\`[WorkerManager.loadImageBitmap] Failed to fetch \${url}: \`
53953
- + \`\${response.status} \${response.statusText}\`);
53954
- }
53955
-
53956
- const imageBlob = await response.blob();
53957
- const imageBitmap = await createImageBitmap(imageBlob);
53958
-
53959
- return imageBitmap;
53963
+ }
53964
+ checkImageBitmap().then((result) => {
53965
+ self.postMessage(result);
53966
+ });
53967
+ })();
53968
+ `;
53969
+ let WORKER_URL$1 = null;
53970
+ let WorkerInstance$1 = class WorkerInstance {
53971
+ constructor() {
53972
+ WORKER_URL$1 || (WORKER_URL$1 = URL.createObjectURL(new Blob([WORKER_CODE$1], { type: "application/javascript" }))), this.worker = new Worker(WORKER_URL$1);
53973
+ }
53974
+ };
53975
+ WorkerInstance$1.revokeObjectURL = function() {
53976
+ WORKER_URL$1 && (URL.revokeObjectURL(WORKER_URL$1), WORKER_URL$1 = null);
53977
+ };
53978
+ const WORKER_CODE = `(function() {
53979
+ "use strict";
53980
+ async function loadImageBitmap(url) {
53981
+ const response = await fetch(url);
53982
+ if (!response.ok)
53983
+ throw new Error(\`[WorkerManager.loadImageBitmap] Failed to fetch \${url}: \${response.status} \${response.statusText}\`);
53984
+ const imageBlob = await response.blob();
53985
+ return await createImageBitmap(imageBlob);
53986
+ }
53987
+ self.onmessage = async (event) => {
53988
+ try {
53989
+ const imageBitmap = await loadImageBitmap(event.data.data[0]);
53990
+ self.postMessage({
53991
+ data: imageBitmap,
53992
+ uuid: event.data.uuid,
53993
+ id: event.data.id
53994
+ }, [imageBitmap]);
53995
+ } catch (e) {
53996
+ self.postMessage({
53997
+ error: e,
53998
+ uuid: event.data.uuid,
53999
+ id: event.data.id
54000
+ });
53960
54001
  }
53961
- self.onmessage = async (event) =>
53962
- {
53963
- try
53964
- {
53965
- const imageBitmap = await loadImageBitmap(event.data.data[0]);
53966
-
53967
- self.postMessage({
53968
- data: imageBitmap,
53969
- uuid: event.data.uuid,
53970
- id: event.data.id,
53971
- }, [imageBitmap]);
53972
- }
53973
- catch(e)
53974
- {
53975
- self.postMessage({
53976
- error: e,
53977
- uuid: event.data.uuid,
53978
- id: event.data.id,
53979
- });
53980
- }
53981
- };`
54002
+ };
54003
+ })();
54004
+ `;
54005
+ let WORKER_URL = null;
54006
+ class WorkerInstance2 {
54007
+ constructor() {
54008
+ WORKER_URL || (WORKER_URL = URL.createObjectURL(new Blob([WORKER_CODE], { type: "application/javascript" }))), this.worker = new Worker(WORKER_URL);
54009
+ }
54010
+ }
54011
+ WorkerInstance2.revokeObjectURL = function() {
54012
+ WORKER_URL && (URL.revokeObjectURL(WORKER_URL), WORKER_URL = null);
53982
54013
  };
53983
- let workerURL;
54014
+ let UUID = 0, MAX_WORKERS;
53984
54015
  class WorkerManagerClass {
53985
54016
  constructor() {
53986
54017
  this._initialized = false, this._createdWorkers = 0, this.workerPool = [], this.queue = [], this.resolveHash = {};
53987
54018
  }
53988
54019
  isImageBitmapSupported() {
53989
54020
  return this._isImageBitmapSupported !== void 0 ? this._isImageBitmapSupported : (this._isImageBitmapSupported = new Promise((resolve) => {
53990
- const workerURL2 = URL.createObjectURL(new Blob(
53991
- [checkImageBitmapCode.code],
53992
- { type: "application/javascript" }
53993
- )), worker = new Worker(workerURL2);
54021
+ const { worker } = new WorkerInstance$1();
53994
54022
  worker.addEventListener("message", (event) => {
53995
- worker.terminate(), URL.revokeObjectURL(workerURL2), resolve(event.data);
54023
+ worker.terminate(), WorkerInstance$1.revokeObjectURL(), resolve(event.data);
53996
54024
  });
53997
54025
  }), this._isImageBitmapSupported);
53998
54026
  }
@@ -54005,7 +54033,7 @@ class WorkerManagerClass {
54005
54033
  getWorker() {
54006
54034
  MAX_WORKERS === void 0 && (MAX_WORKERS = navigator.hardwareConcurrency || 4);
54007
54035
  let worker = this.workerPool.pop();
54008
- return !worker && this._createdWorkers < MAX_WORKERS && (workerURL || (workerURL = URL.createObjectURL(new Blob([workerCode.code], { type: "application/javascript" }))), this._createdWorkers++, worker = new Worker(workerURL), worker.addEventListener("message", (event) => {
54036
+ return !worker && this._createdWorkers < MAX_WORKERS && (this._createdWorkers++, worker = new WorkerInstance2().worker, worker.addEventListener("message", (event) => {
54009
54037
  this.complete(event.data), this.returnWorker(event.target), this.next();
54010
54038
  })), worker;
54011
54039
  }
@@ -54132,7 +54160,11 @@ const validVideoExtensions = [".mp4", ".m4v", ".webm", ".ogv"], validVideoMIMEs
54132
54160
  priority: LoaderParserPriority.High
54133
54161
  },
54134
54162
  config: {
54135
- defaultAutoPlay: true
54163
+ defaultAutoPlay: true,
54164
+ defaultUpdateFPS: 0,
54165
+ defaultLoop: false,
54166
+ defaultMuted: false,
54167
+ defaultPlaysinline: true
54136
54168
  },
54137
54169
  test(url) {
54138
54170
  return checkDataUrl(url, validVideoMIMEs) || checkExtension(url, validVideoExtensions);
@@ -54144,7 +54176,12 @@ const validVideoExtensions = [".mp4", ".m4v", ".webm", ".ogv"], validVideoMIMEs
54144
54176
  try {
54145
54177
  const options = {
54146
54178
  autoPlay: this.config.defaultAutoPlay,
54147
- ...(_a2 = loadAsset == null ? void 0 : loadAsset.data) == null ? void 0 : _a2.resourceOptions
54179
+ updateFPS: this.config.defaultUpdateFPS,
54180
+ loop: this.config.defaultLoop,
54181
+ muted: this.config.defaultMuted,
54182
+ playsinline: this.config.defaultPlaysinline,
54183
+ ...(_a2 = loadAsset == null ? void 0 : loadAsset.data) == null ? void 0 : _a2.resourceOptions,
54184
+ autoLoad: true
54148
54185
  }, src = new VideoResource(blobURL, options);
54149
54186
  await src.load();
54150
54187
  const base = new BaseTexture(src, {
@@ -54545,7 +54582,7 @@ Please use Assets.add({ alias, src, data, format, loadParser }) instead.`), asse
54545
54582
  }
54546
54583
  buildResolvedAsset(formattedAsset, data) {
54547
54584
  const { aliases, data: assetData, loadParser, format } = data;
54548
- return (this._basePath || this._rootPath) && (formattedAsset.src = path.toAbsolute(formattedAsset.src, this._basePath, this._rootPath)), formattedAsset.alias = aliases ?? formattedAsset.alias ?? [formattedAsset.src], formattedAsset.src = this._appendDefaultSearchParams(formattedAsset.src), formattedAsset.data = { ...assetData || {}, ...formattedAsset.data }, formattedAsset.loadParser = loadParser ?? formattedAsset.loadParser, formattedAsset.format = format ?? path.extname(formattedAsset.src).slice(1), formattedAsset.srcs = formattedAsset.src, formattedAsset.name = formattedAsset.alias, formattedAsset;
54585
+ return (this._basePath || this._rootPath) && (formattedAsset.src = path.toAbsolute(formattedAsset.src, this._basePath, this._rootPath)), formattedAsset.alias = aliases ?? formattedAsset.alias ?? [formattedAsset.src], formattedAsset.src = this._appendDefaultSearchParams(formattedAsset.src), formattedAsset.data = { ...assetData || {}, ...formattedAsset.data }, formattedAsset.loadParser = loadParser ?? formattedAsset.loadParser, formattedAsset.format = format ?? formattedAsset.format ?? path.extname(formattedAsset.src).slice(1), formattedAsset.srcs = formattedAsset.src, formattedAsset.name = formattedAsset.alias, formattedAsset;
54549
54586
  }
54550
54587
  }
54551
54588
  class AssetsClass {
@@ -54562,7 +54599,7 @@ class AssetsClass {
54562
54599
  async init(options = {}) {
54563
54600
  var _a2, _b2;
54564
54601
  if (this._initialized) {
54565
- console.warn("[Assets]AssetManager already initialized, did you load before calling this Asset.init()?");
54602
+ console.warn("[Assets]AssetManager already initialized, did you load before calling this Assets.init()?");
54566
54603
  return;
54567
54604
  }
54568
54605
  if (this._initialized = true, options.defaultSearchParams && this.resolver.setDefaultSearchParams(options.defaultSearchParams), options.basePath && (this.resolver.basePath = options.basePath), options.bundleIdentifier && this.resolver.setBundleIdentifier(options.bundleIdentifier), options.manifest) {
@@ -54653,7 +54690,7 @@ class AssetsClass {
54653
54690
  * ]
54654
54691
  * };
54655
54692
  *
54656
- * await Asset.init({ manifest });
54693
+ * await Assets.init({ manifest });
54657
54694
  *
54658
54695
  * // Load a bundle...
54659
54696
  * loadScreenAssets = await Assets.loadBundle('load-screen');
@@ -57163,6 +57200,22 @@ class ResizePlugin {
57163
57200
  }
57164
57201
  ResizePlugin.extension = ExtensionType.Application;
57165
57202
  extensions$1.add(ResizePlugin);
57203
+ DisplayObject.prototype.name = null;
57204
+ Container.prototype.getChildByName = function(name, deep) {
57205
+ for (let i2 = 0, j2 = this.children.length; i2 < j2; i2++)
57206
+ if (this.children[i2].name === name)
57207
+ return this.children[i2];
57208
+ if (deep)
57209
+ for (let i2 = 0, j2 = this.children.length; i2 < j2; i2++) {
57210
+ const child = this.children[i2];
57211
+ if (!child.getChildByName)
57212
+ continue;
57213
+ const target = child.getChildByName(name, true);
57214
+ if (target)
57215
+ return target;
57216
+ }
57217
+ return null;
57218
+ };
57166
57219
  const _tempMatrix = new Matrix();
57167
57220
  DisplayObject.prototype._cacheAsBitmap = false;
57168
57221
  DisplayObject.prototype._cacheData = null;
@@ -57293,22 +57346,6 @@ DisplayObject.prototype._destroyCachedDisplayObject = function() {
57293
57346
  DisplayObject.prototype._cacheAsBitmapDestroy = function(options) {
57294
57347
  this.cacheAsBitmap = false, this.destroy(options);
57295
57348
  };
57296
- DisplayObject.prototype.name = null;
57297
- Container.prototype.getChildByName = function(name, deep) {
57298
- for (let i2 = 0, j2 = this.children.length; i2 < j2; i2++)
57299
- if (this.children[i2].name === name)
57300
- return this.children[i2];
57301
- if (deep)
57302
- for (let i2 = 0, j2 = this.children.length; i2 < j2; i2++) {
57303
- const child = this.children[i2];
57304
- if (!child.getChildByName)
57305
- continue;
57306
- const target = child.getChildByName(name, true);
57307
- if (target)
57308
- return target;
57309
- }
57310
- return null;
57311
- };
57312
57349
  DisplayObject.prototype.getGlobalPosition = function(point = new Point(), skipUpdate = false) {
57313
57350
  return this.parent ? this.parent.toGlobal(this.position, point, skipUpdate) : (point.x = this.position.x, point.y = this.position.y), point;
57314
57351
  };
@@ -58750,7 +58787,7 @@ class EventsTickerClass {
58750
58787
  }));
58751
58788
  }
58752
58789
  /**
58753
- * Updates the state of interactive objects if at least {@link interactionFrequency}
58790
+ * Updates the state of interactive objects if at least {@link PIXI.EventsTicker#interactionFrequency}
58754
58791
  * milliseconds have passed since the last invocation.
58755
58792
  *
58756
58793
  * Invoked by a throttled ticker update from {@link PIXI.Ticker.system}.
@@ -60311,8 +60348,12 @@ const FederatedDisplayObject = {
60311
60348
  * });
60312
60349
  */
60313
60350
  addEventListener(type2, listener, options) {
60314
- const capture = typeof options == "boolean" && options || typeof options == "object" && options.capture, context2 = typeof listener == "function" ? void 0 : listener;
60315
- type2 = capture ? `${type2}capture` : type2, listener = typeof listener == "function" ? listener : listener.handleEvent, this.on(type2, listener, context2);
60351
+ const capture = typeof options == "boolean" && options || typeof options == "object" && options.capture, signal = typeof options == "object" ? options.signal : void 0, once2 = typeof options == "object" ? options.once === true : false, context2 = typeof listener == "function" ? void 0 : listener;
60352
+ type2 = capture ? `${type2}capture` : type2;
60353
+ const listenerFn = typeof listener == "function" ? listener : listener.handleEvent, emitter = this;
60354
+ signal && signal.addEventListener("abort", () => {
60355
+ emitter.off(type2, listenerFn, context2);
60356
+ }), once2 ? emitter.once(type2, listenerFn, context2) : emitter.on(type2, listenerFn, context2);
60316
60357
  },
60317
60358
  /**
60318
60359
  * Unlike `off` or `removeListener` which are methods from EventEmitter, `removeEventListener`
@@ -60604,7 +60645,7 @@ AccessibilityManager.extension = {
60604
60645
  ]
60605
60646
  };
60606
60647
  extensions$1.add(AccessibilityManager);
60607
- var INTERNAL_FORMATS = /* @__PURE__ */ ((INTERNAL_FORMATS2) => (INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_R11_EAC = 37488] = "COMPRESSED_R11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SIGNED_R11_EAC = 37489] = "COMPRESSED_SIGNED_R11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RG11_EAC = 37490] = "COMPRESSED_RG11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SIGNED_RG11_EAC = 37491] = "COMPRESSED_SIGNED_RG11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB8_ETC2 = 37492] = "COMPRESSED_RGB8_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA8_ETC2_EAC = 37496] = "COMPRESSED_RGBA8_ETC2_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_ETC2 = 37493] = "COMPRESSED_SRGB8_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_ETC1_WEBGL = 36196] = "COMPRESSED_RGB_ETC1_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_ATC_WEBGL = 35986] = "COMPRESSED_RGB_ATC_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35986] = "COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798] = "COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ASTC_4x4_KHR = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR", INTERNAL_FORMATS2))(INTERNAL_FORMATS || {});
60648
+ var INTERNAL_FORMATS = /* @__PURE__ */ ((INTERNAL_FORMATS2) => (INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_S3TC_DXT1_EXT = 33776] = "COMPRESSED_RGB_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777] = "COMPRESSED_RGBA_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778] = "COMPRESSED_RGBA_S3TC_DXT3_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779] = "COMPRESSED_RGBA_S3TC_DXT5_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 35917] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 35918] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 35919] = "COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_S3TC_DXT1_EXT = 35916] = "COMPRESSED_SRGB_S3TC_DXT1_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_R11_EAC = 37488] = "COMPRESSED_R11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SIGNED_R11_EAC = 37489] = "COMPRESSED_SIGNED_R11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RG11_EAC = 37490] = "COMPRESSED_RG11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SIGNED_RG11_EAC = 37491] = "COMPRESSED_SIGNED_RG11_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB8_ETC2 = 37492] = "COMPRESSED_RGB8_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA8_ETC2_EAC = 37496] = "COMPRESSED_RGBA8_ETC2_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_ETC2 = 37493] = "COMPRESSED_SRGB8_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 37497] = "COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37494] = "COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 37495] = "COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840] = "COMPRESSED_RGB_PVRTC_4BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842] = "COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841] = "COMPRESSED_RGB_PVRTC_2BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843] = "COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_ETC1_WEBGL = 36196] = "COMPRESSED_RGB_ETC1_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_ATC_WEBGL = 35986] = "COMPRESSED_RGB_ATC_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987] = "COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798] = "COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_ASTC_4x4_KHR = 37808] = "COMPRESSED_RGBA_ASTC_4x4_KHR", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGBA_BPTC_UNORM_EXT = 36492] = "COMPRESSED_RGBA_BPTC_UNORM_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT = 36493] = "COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT = 36494] = "COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT", INTERNAL_FORMATS2[INTERNAL_FORMATS2.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT = 36495] = "COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT", INTERNAL_FORMATS2))(INTERNAL_FORMATS || {});
60608
60649
  const INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = {
60609
60650
  // WEBGL_compressed_texture_s3tc
60610
60651
  33776: 0.5,
@@ -60639,24 +60680,31 @@ const INTERNAL_FORMAT_TO_BYTES_PER_PIXEL = {
60639
60680
  // @see https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_compressed_ATC_texture.txt
60640
60681
  // WEBGL_compressed_texture_atc
60641
60682
  35986: 0.5,
60642
- 35986: 1,
60683
+ 35987: 1,
60643
60684
  34798: 1,
60644
60685
  // @see https://registry.khronos.org/OpenGL/extensions/KHR/KHR_texture_compression_astc_hdr.txt
60645
60686
  // WEBGL_compressed_texture_astc
60646
60687
  /* eslint-disable-next-line camelcase */
60647
- 37808: 1
60688
+ 37808: 1,
60689
+ // @see https://registry.khronos.org/OpenGL/extensions/EXT/EXT_texture_compression_bptc.txt
60690
+ // EXT_texture_compression_bptc
60691
+ 36492: 1,
60692
+ 36493: 1,
60693
+ 36494: 1,
60694
+ 36495: 1
60648
60695
  };
60649
60696
  let storedGl, extensions;
60650
60697
  function getCompressedTextureExtensions() {
60651
60698
  extensions = {
60699
+ bptc: storedGl.getExtension("EXT_texture_compression_bptc"),
60700
+ astc: storedGl.getExtension("WEBGL_compressed_texture_astc"),
60701
+ etc: storedGl.getExtension("WEBGL_compressed_texture_etc"),
60652
60702
  s3tc: storedGl.getExtension("WEBGL_compressed_texture_s3tc"),
60653
60703
  s3tc_sRGB: storedGl.getExtension("WEBGL_compressed_texture_s3tc_srgb"),
60654
60704
  /* eslint-disable-line camelcase */
60655
- etc: storedGl.getExtension("WEBGL_compressed_texture_etc"),
60656
- etc1: storedGl.getExtension("WEBGL_compressed_texture_etc1"),
60657
60705
  pvrtc: storedGl.getExtension("WEBGL_compressed_texture_pvrtc") || storedGl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),
60658
- atc: storedGl.getExtension("WEBGL_compressed_texture_atc"),
60659
- astc: storedGl.getExtension("WEBGL_compressed_texture_astc")
60706
+ etc1: storedGl.getExtension("WEBGL_compressed_texture_etc1"),
60707
+ atc: storedGl.getExtension("WEBGL_compressed_texture_atc")
60660
60708
  };
60661
60709
  }
60662
60710
  const detectCompressedTextures = {
@@ -60762,15 +60810,21 @@ class CompressedTextureResource extends BlobResource {
60762
60810
  static _formatToExtension(format) {
60763
60811
  if (format >= 33776 && format <= 33779)
60764
60812
  return "s3tc";
60813
+ if (format >= 35916 && format <= 35919)
60814
+ return "s3tc_sRGB";
60765
60815
  if (format >= 37488 && format <= 37497)
60766
60816
  return "etc";
60767
60817
  if (format >= 35840 && format <= 35843)
60768
60818
  return "pvrtc";
60769
- if (format >= 36196)
60819
+ if (format === 36196)
60770
60820
  return "etc1";
60771
- if (format >= 35986 && format <= 34798)
60821
+ if (format === 35986 || format === 35987 || format === 34798)
60772
60822
  return "atc";
60773
- throw new Error("Invalid (compressed) texture format given!");
60823
+ if (format >= 36492 && format <= 36495)
60824
+ return "bptc";
60825
+ if (format === 37808)
60826
+ return "astc";
60827
+ throw new Error(`Invalid (compressed) texture format given: ${format}`);
60774
60828
  }
60775
60829
  /**
60776
60830
  * Pre-creates buffer views for each mipmap level
@@ -60833,7 +60887,14 @@ const DDS_MAGIC_SIZE = 4, DDS_HEADER_SIZE = 124, DDS_HEADER_PF_SIZE = 32, DDS_HE
60833
60887
  // WEBGL_compressed_texture_s3tc_srgb
60834
60888
  72: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
60835
60889
  75: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
60836
- 78: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
60890
+ 78: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
60891
+ // EXT_texture_compression_bptc
60892
+ // BC6H
60893
+ 96: INTERNAL_FORMATS.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,
60894
+ 95: INTERNAL_FORMATS.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,
60895
+ // BC7
60896
+ 98: INTERNAL_FORMATS.COMPRESSED_RGBA_BPTC_UNORM_EXT,
60897
+ 99: INTERNAL_FORMATS.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
60837
60898
  };
60838
60899
  function parseDDS(arrayBuffer) {
60839
60900
  const data = new Uint32Array(arrayBuffer);
@@ -61101,7 +61162,7 @@ const loadKTX = {
61101
61162
  }
61102
61163
  };
61103
61164
  extensions$1.add(loadKTX);
61104
- const resolveCompressedTextureUrl = {
61165
+ const knownFormats = ["s3tc", "s3tc_sRGB", "etc", "etc1", "pvrtc", "atc", "astc", "bptc"], resolveCompressedTextureUrl = {
61105
61166
  extension: ExtensionType.ResolveParser,
61106
61167
  test: (value) => {
61107
61168
  const extension = path.extname(value).slice(1);
@@ -61109,21 +61170,13 @@ const resolveCompressedTextureUrl = {
61109
61170
  },
61110
61171
  parse: (value) => {
61111
61172
  var _a2, _b2;
61112
- const extension = path.extname(value).slice(1);
61113
- if (extension === "ktx") {
61114
- const extensions2 = [
61115
- ".s3tc.ktx",
61116
- ".s3tc_sRGB.ktx",
61117
- ".etc.ktx",
61118
- ".etc1.ktx",
61119
- ".pvrt.ktx",
61120
- ".atc.ktx",
61121
- ".astc.ktx"
61122
- ];
61123
- if (extensions2.some((ext) => value.endsWith(ext)))
61173
+ const parts = value.split("."), extension = parts.pop();
61174
+ if (["ktx", "dds"].includes(extension)) {
61175
+ const textureFormat = parts.pop();
61176
+ if (knownFormats.includes(textureFormat))
61124
61177
  return {
61125
61178
  resolution: parseFloat(((_a2 = settings.RETINA_PREFIX.exec(value)) == null ? void 0 : _a2[1]) ?? "1"),
61126
- format: extensions2.find((ext) => value.endsWith(ext)),
61179
+ format: textureFormat,
61127
61180
  src: value
61128
61181
  };
61129
61182
  }
@@ -61490,15 +61543,11 @@ Prepare.extension = {
61490
61543
  };
61491
61544
  extensions$1.add(Prepare);
61492
61545
  const _Spritesheet = class _Spritesheet2 {
61493
- /**
61494
- * @param texture - Reference to the source BaseTexture object.
61495
- * @param {object} data - Spritesheet image data.
61496
- * @param resolutionFilename - The filename to consider when determining
61497
- * the resolution of the spritesheet. If not provided, the imageUrl will
61498
- * be used on the BaseTexture.
61499
- */
61500
- constructor(texture, data, resolutionFilename = null) {
61501
- this.linkedSheets = [], this._texture = texture instanceof Texture ? texture : null, this.baseTexture = texture instanceof BaseTexture ? texture : this._texture.baseTexture, this.textures = {}, this.animations = {}, this.data = data;
61546
+ /** @ignore */
61547
+ constructor(optionsOrTexture, arg1, arg2) {
61548
+ this.linkedSheets = [], (optionsOrTexture instanceof BaseTexture || optionsOrTexture instanceof Texture) && (optionsOrTexture = { texture: optionsOrTexture, data: arg1, resolutionFilename: arg2 });
61549
+ const { texture, data, resolutionFilename = null, cachePrefix = "" } = optionsOrTexture;
61550
+ this.cachePrefix = cachePrefix, this._texture = texture instanceof Texture ? texture : null, this.baseTexture = texture instanceof BaseTexture ? texture : this._texture.baseTexture, this.textures = {}, this.animations = {}, this.data = data;
61502
61551
  const resource = this.baseTexture.resource;
61503
61552
  this.resolution = this._updateResolution(resolutionFilename || (resource ? resource.url : null)), this._frames = this.data.frames, this._frameKeys = Object.keys(this._frames), this._batchIndex = 0, this._callback = null;
61504
61553
  }
@@ -61512,7 +61561,7 @@ const _Spritesheet = class _Spritesheet2 {
61512
61561
  _updateResolution(resolutionFilename = null) {
61513
61562
  const { scale } = this.data.meta;
61514
61563
  let resolution = getResolutionOfUrl(resolutionFilename, null);
61515
- return resolution === null && (resolution = parseFloat(scale ?? "1")), resolution !== 1 && this.baseTexture.setResolution(resolution), resolution;
61564
+ return resolution === null && (resolution = typeof scale == "number" ? scale : parseFloat(scale ?? "1")), resolution !== 1 && this.baseTexture.setResolution(resolution), resolution;
61516
61565
  }
61517
61566
  /**
61518
61567
  * Parser spritesheet from loaded data. This is done asynchronously
@@ -61564,7 +61613,7 @@ const _Spritesheet = class _Spritesheet2 {
61564
61613
  data.rotated ? 2 : 0,
61565
61614
  data.anchor,
61566
61615
  data.borders
61567
- ), Texture.addToCache(this.textures[i2], i2.toString());
61616
+ ), Texture.addToCache(this.textures[i2], this.cachePrefix + i2.toString());
61568
61617
  }
61569
61618
  frameIndex++;
61570
61619
  }
@@ -61604,18 +61653,35 @@ const _Spritesheet = class _Spritesheet2 {
61604
61653
  };
61605
61654
  _Spritesheet.BATCH_SIZE = 1e3;
61606
61655
  let Spritesheet = _Spritesheet;
61607
- const validImages = ["jpg", "png", "jpeg", "avif", "webp"];
61656
+ const validImages = [
61657
+ "jpg",
61658
+ "png",
61659
+ "jpeg",
61660
+ "avif",
61661
+ "webp",
61662
+ "s3tc",
61663
+ "s3tc_sRGB",
61664
+ "etc",
61665
+ "etc1",
61666
+ "pvrtc",
61667
+ "atc",
61668
+ "astc",
61669
+ "bptc"
61670
+ ];
61608
61671
  function getCacheableAssets(keys, asset, ignoreMultiPack) {
61609
61672
  const out = {};
61610
61673
  if (keys.forEach((key) => {
61611
61674
  out[key] = asset;
61612
61675
  }), Object.keys(asset.textures).forEach((key) => {
61613
- out[key] = asset.textures[key];
61676
+ out[`${asset.cachePrefix}${key}`] = asset.textures[key];
61614
61677
  }), !ignoreMultiPack) {
61615
61678
  const basePath = path.dirname(keys[0]);
61616
61679
  asset.linkedSheets.forEach((item, i2) => {
61617
- const out2 = getCacheableAssets([`${basePath}/${asset.data.meta.related_multi_packs[i2]}`], item, true);
61618
- Object.assign(out, out2);
61680
+ Object.assign(out, getCacheableAssets(
61681
+ [`${basePath}/${asset.data.meta.related_multi_packs[i2]}`],
61682
+ item,
61683
+ true
61684
+ ));
61619
61685
  });
61620
61686
  }
61621
61687
  return out;
@@ -61661,15 +61727,29 @@ const spritesheetAsset = {
61661
61727
  },
61662
61728
  async parse(asset, options, loader) {
61663
61729
  var _a2, _b2;
61730
+ const {
61731
+ texture: imageTexture,
61732
+ // if user need to use preloaded texture
61733
+ imageFilename,
61734
+ // if user need to use custom filename (not from jsonFile.meta.image)
61735
+ cachePrefix
61736
+ // if user need to use custom cache prefix
61737
+ } = (options == null ? void 0 : options.data) ?? {};
61664
61738
  let basePath = path.dirname(options.src);
61665
61739
  basePath && basePath.lastIndexOf("/") !== basePath.length - 1 && (basePath += "/");
61666
- let imagePath = basePath + asset.meta.image;
61667
- imagePath = copySearchParams(imagePath, options.src);
61668
- const texture = (await loader.load([imagePath]))[imagePath], spritesheet = new Spritesheet(
61669
- texture.baseTexture,
61670
- asset,
61671
- options.src
61672
- );
61740
+ let texture;
61741
+ if (imageTexture && imageTexture.baseTexture)
61742
+ texture = imageTexture;
61743
+ else {
61744
+ const imagePath = copySearchParams(basePath + (imageFilename ?? asset.meta.image), options.src);
61745
+ texture = (await loader.load([imagePath]))[imagePath];
61746
+ }
61747
+ const spritesheet = new Spritesheet({
61748
+ texture: texture.baseTexture,
61749
+ data: asset,
61750
+ resolutionFilename: options.src,
61751
+ cachePrefix
61752
+ });
61673
61753
  await spritesheet.parse();
61674
61754
  const multiPacks = (_a2 = asset == null ? void 0 : asset.meta) == null ? void 0 : _a2.related_multi_packs;
61675
61755
  if (Array.isArray(multiPacks)) {
@@ -62184,7 +62264,7 @@ const ActionBar$1 = /* @__PURE__ */ reactExports.forwardRef(({
62184
62264
  } = props, getLoadingIcon = () => {
62185
62265
  let icon;
62186
62266
  return loadingIcon ? icon = loadingIcon : icon = /* @__PURE__ */ jsxRuntimeExports.jsx(SvgLoader$1, { ...restProps, "aria-label": "Loading" }), icon;
62187
- }, classes2 = clsx("loading", {
62267
+ }, classes2 = clsx("loading d-flex align-items-center gap-8", {
62188
62268
  "is-loading": isLoading
62189
62269
  }, className);
62190
62270
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: classes2, role: "status", ref: ref2, children: [
@@ -62561,10 +62641,10 @@ function useClickOutside(handler, events2, nodes) {
62561
62641
  } else
62562
62642
  ref2.current && !ref2.current.contains(target) && handler();
62563
62643
  };
62564
- return (events2 || DEFAULT_EVENTS).forEach((fn2) => {
62644
+ return DEFAULT_EVENTS.forEach((fn2) => {
62565
62645
  document.addEventListener(fn2, listener);
62566
62646
  }), () => {
62567
- (events2 || DEFAULT_EVENTS).forEach((fn2) => {
62647
+ DEFAULT_EVENTS.forEach((fn2) => {
62568
62648
  document.removeEventListener(fn2, listener);
62569
62649
  });
62570
62650
  };
@@ -62575,7 +62655,7 @@ function useDebounce(value, delay) {
62575
62655
  return reactExports.useEffect(() => {
62576
62656
  const timer = setTimeout(() => {
62577
62657
  setDebouncedValue(value);
62578
- }, delay || 500);
62658
+ }, delay);
62579
62659
  return () => {
62580
62660
  clearTimeout(timer);
62581
62661
  };
@@ -63085,7 +63165,8 @@ const Image$1 = /* @__PURE__ */ reactExports.forwardRef(({
63085
63165
  app,
63086
63166
  size: size2 = "24",
63087
63167
  iconFit = "contain",
63088
- variant = "square"
63168
+ variant = "square",
63169
+ className = ""
63089
63170
  }, ref2) => {
63090
63171
  const {
63091
63172
  isIconUrl,
@@ -63103,14 +63184,19 @@ const Image$1 = /* @__PURE__ */ reactExports.forwardRef(({
63103
63184
  }, iconFits = {
63104
63185
  "icon-contain": isContain,
63105
63186
  "icon-ratio": isRatio
63106
- }, icon = typeof app == "string" ? app : (app == null ? void 0 : app.icon) !== void 0 ? app.icon : "placeholder", displayName = typeof app != "string" && (app == null ? void 0 : app.displayName) !== void 0 ? app.displayName : "", code = app ? getIconCode(app) : "", isIconURL = isIconUrl(icon), appCode = code || "placeholder", classes2 = clsx("app-icon", {
63187
+ }, icon = typeof app == "string" ? app : (app == null ? void 0 : app.icon) !== void 0 ? app.icon : "placeholder", displayName = typeof app != "string" && (app == null ? void 0 : app.displayName) !== void 0 ? app.displayName : "", code = app ? getIconCode(app) : "", isIconURL = isIconUrl(icon), appCode = code || "placeholder";
63188
+ if (isIconURL) {
63189
+ const classes22 = clsx("h-full", className);
63190
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(Image$2, { src: icon, alt: displayName, objectFit: "contain", width: size2, height: size2, className: classes22 });
63191
+ }
63192
+ const classes2 = clsx("app-icon", {
63107
63193
  ...iconSizes,
63108
63194
  ...iconVariant,
63109
63195
  ...iconFits,
63110
63196
  [`bg-light-${appCode}`]: appCode && !isContain,
63111
63197
  [`color-app-${appCode}`]: appCode
63112
- });
63113
- return isIconURL ? /* @__PURE__ */ jsxRuntimeExports.jsx(Image$2, { src: icon, alt: displayName, objectFit: "contain", width: size2, height: size2, className: "h-full" }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: classes2, style: {
63198
+ }, className);
63199
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: classes2, style: {
63114
63200
  width: size2 + "px",
63115
63201
  height: size2 + "px"
63116
63202
  }, children: /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { ref: ref2, width: size2, height: size2, role: "img", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntimeExports.jsx("use", { xlinkHref: `${iconPath}/apps.svg#${appCode}` }) }) });
@@ -65231,8 +65317,8 @@ const useSlug = ({
65231
65317
  function onPublicChange(value) {
65232
65318
  setIsPublic(value);
65233
65319
  }
65234
- function onCopyToClipBoard() {
65235
- navigator.clipboard.writeText(`${window.location.origin}${window.location.pathname}/pub/${slug}`), toast2.success(t2("explorer.copy.clipboard"));
65320
+ function onCopyToClipBoard(pathname) {
65321
+ navigator.clipboard.writeText(`${window.location.origin}${pathname || window.location.pathname}/pub/${slug}`), toast2.success(t2("explorer.copy.clipboard"));
65236
65322
  }
65237
65323
  return {
65238
65324
  slug,
@@ -65284,11 +65370,10 @@ const useSlug = ({
65284
65370
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "d-flex flex-wrap align-items-center gap-4", children: [
65285
65371
  /* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-break", children: [
65286
65372
  window.location.origin,
65287
- window.location.pathname,
65288
- "/pub/",
65373
+ "/blog/pub/",
65289
65374
  slug
65290
65375
  ] }),
65291
- /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { color: "primary", disabled: !isPublic, onClick: onCopyToClipBoard, type: "button", leftIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgCopy$1, {}), variant: "ghost", className: "text-nowrap", children: t2("explorer.resource.editModal.access.url.button") })
65376
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { color: "primary", disabled: !isPublic, onClick: () => onCopyToClipBoard("/blog"), type: "button", leftIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgCopy$1, {}), variant: "ghost", className: "text-nowrap", children: t2("explorer.resource.editModal.access.url.button") })
65292
65377
  ] })
65293
65378
  ] })
65294
65379
  ] });
@@ -65814,7 +65899,7 @@ function ShareResourceModal({
65814
65899
  /* @__PURE__ */ jsxRuntimeExports.jsx(Tooltip$1, { message: "Vos favoris de partage s’affichent en priorité dans votre liste lorsque vous recherchez un groupe ou une personne, vous pouvez les retrouver dans l’annuaire.", placement: "top", children: /* @__PURE__ */ jsxRuntimeExports.jsx(SvgInfoCircle$1, { className: "c-pointer", height: "18" }) })
65815
65900
  ] }),
65816
65901
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "row", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "col-10", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Combobox$1, { value: searchInputValue, placeholder: searchPlaceholder, isLoading: showSearchLoading(), noResult: showSearchNoResults(), options: searchResults, searchMinLength: getSearchMinLength(), onSearchInputChange: handleSearchInputChange, onSearchResultsChange: handleSearchResultsChange }) }) }),
65817
- children
65902
+ typeof children == "function" ? children(resource) : children
65818
65903
  ] }),
65819
65904
  /* @__PURE__ */ jsxRuntimeExports.jsxs(Modal$1.Footer, { children: [
65820
65905
  /* @__PURE__ */ jsxRuntimeExports.jsx(Button$1, { type: "button", color: "tertiary", variant: "ghost", onClick: onCancel, children: t2("explorer.cancel") }),
@@ -66210,7 +66295,7 @@ const seen = {};
66210
66295
  const __vitePreload = function preload2(baseModule, deps, importerUrl) {
66211
66296
  let promise2 = Promise.resolve();
66212
66297
  if (deps && deps.length > 0) {
66213
- const links = document.getElementsByTagName("link");
66298
+ document.getElementsByTagName("link");
66214
66299
  promise2 = Promise.all(deps.map((dep) => {
66215
66300
  dep = assetsURL(dep);
66216
66301
  if (dep in seen)
@@ -66218,15 +66303,7 @@ const __vitePreload = function preload2(baseModule, deps, importerUrl) {
66218
66303
  seen[dep] = true;
66219
66304
  const isCss = dep.endsWith(".css");
66220
66305
  const cssSelector = isCss ? '[rel="stylesheet"]' : "";
66221
- const isBaseRelative = !!importerUrl;
66222
- if (isBaseRelative) {
66223
- for (let i2 = links.length - 1; i2 >= 0; i2--) {
66224
- const link2 = links[i2];
66225
- if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) {
66226
- return;
66227
- }
66228
- }
66229
- } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
66306
+ if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
66230
66307
  return;
66231
66308
  }
66232
66309
  const link = document.createElement("link");
@@ -66467,7 +66544,7 @@ const createImpl = (createState) => {
66467
66544
  Object.assign(useBoundStore, api);
66468
66545
  return useBoundStore;
66469
66546
  };
66470
- const create = (createState) => createState ? createImpl(createState) : createImpl;
66547
+ const create = (createState) => createImpl;
66471
66548
  const searchContext = async (searchParams) => {
66472
66549
  const search = await odeServices.resource(searchParams.application).searchContext(searchParams);
66473
66550
  return {
package/dist/version.txt CHANGED
@@ -1 +1 @@
1
- ode-explorer=1.0-b2school-SNAPSHOT 20/03/2024 18:23:09
1
+ ode-explorer=1.0-b2school-SNAPSHOT 29/04/2024 17:20:53
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ode-explorer",
3
- "version": "1.4.2-develop.202403201822",
3
+ "version": "1.4.3",
4
4
  "description": "Edifice Explorer",
5
5
  "homepage": "https://github.com/edificeio/explorer#readme",
6
6
  "bugs": {
@@ -36,8 +36,8 @@
36
36
  ]
37
37
  },
38
38
  "dependencies": {
39
- "@edifice-ui/icons": "develop",
40
- "@edifice-ui/react": "develop",
39
+ "@edifice-ui/icons": "1.5.2",
40
+ "@edifice-ui/react": "1.5.2",
41
41
  "@react-spring/web": "9.7.3",
42
42
  "@tanstack/react-query": "5.8.4",
43
43
  "clsx": "2.1.0",
@@ -65,8 +65,8 @@
65
65
  "@vitejs/plugin-react-swc": "3.5.0",
66
66
  "concurrently": "8.2.2",
67
67
  "csstype": "3.1.3",
68
- "edifice-bootstrap": "develop",
69
- "edifice-ts-client": "develop",
68
+ "edifice-bootstrap": "1.5.0",
69
+ "edifice-ts-client": "1.4.0",
70
70
  "eslint": "8.56.0",
71
71
  "eslint-config-prettier": "9.1.0",
72
72
  "eslint-plugin-import": "2.29.1",