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 +323 -246
- package/dist/version.txt +1 -1
- package/package.json +5 -5
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
|
-
|
|
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
|
|
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
|
|
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 =
|
|
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(
|
|
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
|
|
6612
|
+
return useBaseQuery(options, QueryObserver);
|
|
6621
6613
|
}
|
|
6622
6614
|
function useMutation(options, queryClient2) {
|
|
6623
|
-
const client = useQueryClient(
|
|
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 : "")
|
|
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
|
|
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
|
-
|
|
18516
|
-
|
|
18517
|
-
|
|
18518
|
-
|
|
18519
|
-
|
|
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$
|
|
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
|
-
|
|
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
|
-
},
|
|
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 ?
|
|
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
|
-
|
|
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"
|
|
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"
|
|
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
|
|
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]) >
|
|
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
|
|
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
|
|
39489
|
-
var
|
|
39490
|
-
|
|
39491
|
-
|
|
39492
|
-
|
|
39493
|
-
|
|
39494
|
-
|
|
39495
|
-
|
|
39496
|
-
|
|
39497
|
-
|
|
39498
|
-
|
|
39499
|
-
|
|
39500
|
-
|
|
39501
|
-
|
|
39502
|
-
|
|
39503
|
-
|
|
39504
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
|
39879
|
-
var parts = cleanStr.split(options.delimiter,
|
|
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
|
|
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 =
|
|
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
|
-
* @
|
|
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|
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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.
|
|
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
|
-
*
|
|
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.
|
|
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
|
-
|
|
53921
|
-
|
|
53922
|
-
|
|
53923
|
-
|
|
53924
|
-
|
|
53925
|
-
|
|
53926
|
-
|
|
53927
|
-
|
|
53928
|
-
|
|
53929
|
-
|
|
53930
|
-
|
|
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
|
-
|
|
53942
|
-
|
|
53943
|
-
|
|
53944
|
-
|
|
53945
|
-
|
|
53946
|
-
|
|
53947
|
-
|
|
53948
|
-
|
|
53949
|
-
|
|
53950
|
-
|
|
53951
|
-
|
|
53952
|
-
|
|
53953
|
-
|
|
53954
|
-
|
|
53955
|
-
|
|
53956
|
-
|
|
53957
|
-
|
|
53958
|
-
|
|
53959
|
-
|
|
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
|
-
|
|
53962
|
-
|
|
53963
|
-
|
|
53964
|
-
|
|
53965
|
-
|
|
53966
|
-
|
|
53967
|
-
|
|
53968
|
-
|
|
53969
|
-
|
|
53970
|
-
|
|
53971
|
-
|
|
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
|
|
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
|
|
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(),
|
|
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 && (
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
60659
|
-
|
|
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
|
|
60819
|
+
if (format === 36196)
|
|
60770
60820
|
return "etc1";
|
|
60771
|
-
if (format
|
|
60821
|
+
if (format === 35986 || format === 35987 || format === 34798)
|
|
60772
60822
|
return "atc";
|
|
60773
|
-
|
|
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
|
|
61113
|
-
if (
|
|
61114
|
-
const
|
|
61115
|
-
|
|
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:
|
|
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
|
-
|
|
61495
|
-
|
|
61496
|
-
|
|
61497
|
-
|
|
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 = [
|
|
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
|
-
|
|
61618
|
-
|
|
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
|
|
61667
|
-
|
|
61668
|
-
|
|
61669
|
-
|
|
61670
|
-
asset,
|
|
61671
|
-
|
|
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
|
|
62644
|
+
return DEFAULT_EVENTS.forEach((fn2) => {
|
|
62565
62645
|
document.addEventListener(fn2, listener);
|
|
62566
62646
|
}), () => {
|
|
62567
|
-
|
|
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
|
|
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"
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) =>
|
|
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
|
|
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.
|
|
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": "
|
|
40
|
-
"@edifice-ui/react": "
|
|
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": "
|
|
69
|
-
"edifice-ts-client": "
|
|
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",
|