@measured/puck-plugin-heading-analyzer 0.14.2-canary.2b2ef32 → 0.14.2-canary.47496c2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.js +1379 -13
- package/package.json +2 -2
package/dist/index.js
CHANGED
@@ -35204,6 +35204,26 @@ function getFurthestAway({
|
|
35204
35204
|
}).sort((a2, b) => b.distance - a2.distance);
|
35205
35205
|
return sorted[0] ? sorted[0].id : null;
|
35206
35206
|
}
|
35207
|
+
function normalizeFamilies(pageBorderBox, candidates) {
|
35208
|
+
const families = candidates.reduce((acc, candidate) => {
|
35209
|
+
var _a3;
|
35210
|
+
const familyName = ((_a3 = candidate.parents[0]) == null ? void 0 : _a3.id) || candidate.descriptor.id;
|
35211
|
+
const family = acc[familyName] || [];
|
35212
|
+
const generation = candidate.parents.length;
|
35213
|
+
family[generation] = [...family[generation] || [], candidate];
|
35214
|
+
return __spreadProps(__spreadValues({}, acc), {
|
35215
|
+
[familyName]: family
|
35216
|
+
});
|
35217
|
+
}, {});
|
35218
|
+
return Object.keys(families).map((familyName) => {
|
35219
|
+
const family = families[familyName].flat();
|
35220
|
+
const reversedFamily = [...family].reverse();
|
35221
|
+
const chosenMember = reversedFamily.find((member) => {
|
35222
|
+
return pageBorderBox.center.x < member.page.borderBox.right && pageBorderBox.center.x > member.page.borderBox.left && pageBorderBox.center.y > member.page.borderBox.top && pageBorderBox.center.y < member.page.borderBox.bottom;
|
35223
|
+
});
|
35224
|
+
return chosenMember || family[0];
|
35225
|
+
});
|
35226
|
+
}
|
35207
35227
|
function getDroppableOver({
|
35208
35228
|
pageBorderBox,
|
35209
35229
|
draggable: draggable2,
|
@@ -35244,10 +35264,14 @@ function getDroppableOver({
|
|
35244
35264
|
if (candidates.length === 1) {
|
35245
35265
|
return candidates[0].descriptor.id;
|
35246
35266
|
}
|
35267
|
+
const normalizedCandidates = normalizeFamilies(pageBorderBox, candidates);
|
35268
|
+
if (normalizedCandidates.length === 1) {
|
35269
|
+
return normalizedCandidates[0].descriptor.id;
|
35270
|
+
}
|
35247
35271
|
return getFurthestAway({
|
35248
35272
|
pageBorderBox,
|
35249
35273
|
draggable: draggable2,
|
35250
|
-
candidates
|
35274
|
+
candidates: normalizedCandidates
|
35251
35275
|
});
|
35252
35276
|
}
|
35253
35277
|
function getIsDisplaced({
|
@@ -37618,7 +37642,7 @@ function getBody() {
|
|
37618
37642
|
!document.body ? process.env.NODE_ENV !== "production" ? invariant2(false, "document.body is not ready") : invariant2(false) : void 0;
|
37619
37643
|
return document.body;
|
37620
37644
|
}
|
37621
|
-
var import_react5, import_react_dom2, isProduction$1, spacesAndTabs, lineStartWithSpaces, clean$2, getDevMessage, getFormattedMessage, isDisabledFlag, warning2, error, loaded, isProduction2, prefix$1, RbdInvariant, ErrorBoundary, dragHandleUsageInstructions, position, onDragStart, withLocation, withCombine, onDragUpdate, returnedToStart, onDragEnd, preset, preset$1, origin, add, subtract, isEqual$1, negate, patch, distance2, closest$1, apply, executeClip, offsetByPosition, getCorners, noSpacing2, scroll$1, increase, clip2, getSubject, scrollDroppable, toDroppableMap, toDraggableMap, toDroppableList, toDraggableList, getDraggablesInsideDroppable, removeDraggableFromList, moveToNextCombine, isHomeOf, noDisplacedBy, emptyGroups, noImpact, noImpact$1, isWithin, isPartiallyVisibleThroughFrame, isTotallyVisibleThroughFrame, vertical, horizontal, isTotallyVisibleThroughFrameOnAxis, getDroppableDisplaced, isVisibleInDroppable, isVisibleInViewport, isVisible$1, isPartiallyVisible, isTotallyVisible, isTotallyVisibleOnAxis, getShouldAnimate, fromCombine, fromReorder, moveToNextIndex, getCombinedItemDisplacement, whenCombining, distanceFromStartToBorderBoxCenter, distanceFromEndToBorderBoxCenter, getCrossAxisBorderBoxCenter, goAfter, goBefore, goIntoStart, whenReordering, withDroppableDisplacement, getResultWithoutDroppableDisplacement, getPageBorderBoxCenterFromImpact, scrollViewport, speculativelyIncrease, withViewportDisplacement, getClientFromPageBorderBoxCenter, isTotallyVisibleInNewLocation, moveToNextPlace, getKnownActive, getBestCrossAxisDroppable, getCurrentPageBorderBoxCenter, getCurrentPageBorderBox, getClosestDraggable, getDisplacedBy, getRequiredGrowthForPlaceholder, withMaxScroll, addPlaceholder, removePlaceholder, moveToNewDroppable, moveCrossAxis, whatIsDraggedOver, getDroppableOver$1, moveInDirection, offsetRectByPosition, withDroppableScroll, getReorderImpact, combineThresholdDivisor, getCombineImpact, getDragImpact, patchDroppableMap, clearUnusedPlaceholder, recomputePlaceholders, update, recompute, getClientBorderBoxCenter, refreshSnap, getHomeLocation, getLiftEffect, patchDimensionMap, start, finish, offsetDraggable, getFrame, adjustAdditionsForScrollChanges, timingsKey, publishWhileDraggingInVirtual, isSnapping, postDroppableChange, idle$2, reducer, beforeInitialCapture, lift$1, initialPublish, publishWhileDragging, collectionStarting, updateDroppableScroll, updateDroppableIsEnabled, updateDroppableIsCombineEnabled, move, moveByWindowScroll, updateViewportMaxScroll, moveUp, moveDown, moveRight, moveLeft, flush, animateDrop, completeDrop, drop$1, dropPending, dropAnimationFinished, lift, style, curves, combine, timings, outOfTheWayTiming, transitions, moveTo, transforms, minDropTime, maxDropTime, dropTimeRange, maxDropTimeAtDistance, cancelDropModifier, getDropDuration, getNewHomeClientOffset, getDropImpact, dropMiddleware, drop, getWindowScroll3, shouldEnd, scrollListener, scrollListener$1, getExpiringAnnounce, getAsyncMarshal, areLocationsEqual, isCombineEqual, isCriticalEqual, withTimings, getDragStart, getPublisher, responders, dropAnimationFinishMiddleware, dropAnimationFinish, dropAnimationFlushOnScrollMiddleware, dropAnimationFlushOnScroll, dimensionMarshalStopper, focus, shouldStop, autoScroll, pendingDrop, pendingDrop$1, composeEnhancers, createStore2, clean$1, getMaxScroll, getDocumentElement, getMaxWindowScroll, getViewport, getInitialPublish, createDimensionMarshal, canStartDrag, scrollWindow, getScrollableDroppables, getScrollableDroppableOver, getBestScrollableDroppable, defaultAutoScrollerOptions, getDistanceThresholds, getPercentage, minScroll, getValueFromDistance, dampenValueByTime, getValue, getScrollOnAxis, adjustForSizeLimits, clean, getScroll$1, smallestSigned, getOverlap, canPartiallyScroll, canScrollWindow, getWindowOverlap, canScrollDroppable, getDroppableOverlap, getWindowScrollChange, getDroppableScrollChange, iframeCache, createCol, matrixPattern, getMatrix, getOrigin, findNearestTransform, defaultTransform, getTransform, applyTransformPoint, applyTransformRect, applyTransformSpacing, applyTransformBox, resetToOrigin, getIframeScroll, scroll, createFluidScroller, createJumpScroller, createAutoScroller, prefix2, dragHandle, draggable, droppable, scrollContainer, makeGetSelector, getStyles, noPointerEvents, getStyles$1, useIsomorphicLayoutEffect2, useLayoutEffect2, getHead, createStyleEl, alwaysDataAttr, dynamicDataAttr, getWindowFromEl, dragHandleCache, StoreContext, getBodyElement, visuallyHidden, visuallyHidden$1, getId, count$1, defaults, useUniqueId$1, AppContext, peerDependencies, semver, getVersion, isSatisfied, checkReactVersion, suffix, checkDoctype, tab, enter, escape, space, pageUp, pageDown, end, home, arrowLeft, arrowUp, arrowRight, arrowDown, preventedKeys, preventStandardKeyEvents, supportedEventName, supportedPageVisibilityEventName, primaryButton, sloppyClickThreshold, idle$1, scrollJumpKeys, idle, timeForLongPress, forcePressThreshold, interactiveTagNames, getBorderBoxCenterPosition, supportedMatchesName, defaultSensors, createResponders, createAutoScrollerOptions, count, useUniqueContextId$1, zIndexOptions, getDraggingTransition, getDraggingOpacity, getShouldDraggingAnimate, applyOffsetBox, DroppableContext, Draggable, Draggable$1, isStrictEqual, whatIsDraggedOverFromResult, getCombineWithFromResult, getCombineWithFromImpact, atRest, makeMapStateToProps$1, mapDispatchToProps$1, ConnectedDraggable, ConnectedDraggable$1, getScroll, isEqual2, isScroll, isAuto, isVisible, isEither, isBoth, isElementScrollable, isBodyScrollable, getClosestScrollable, getClosestScrollable$1, getIsFixed, getEnv, getDroppableDimension, getClient, getDimension, immediate, delayed, getListenerOptions, getScrollable, getClosestScrollableFromDrag, empty, getSize, getStyle, Placeholder, Placeholder$1, shared, standard, virtual, AnimateInOut, Droppable, Droppable$1, defaultProps, attachDefaultPropsToOwnProps, isMatchingType, getDraggable, makeMapStateToProps, mapDispatchToProps, ConnectedDroppable, ConnectedDroppable$1;
|
37645
|
+
var import_react5, import_react_dom2, isProduction$1, spacesAndTabs, lineStartWithSpaces, clean$2, getDevMessage, getFormattedMessage, isDisabledFlag, warning2, error, loaded, isProduction2, prefix$1, RbdInvariant, ErrorBoundary, dragHandleUsageInstructions, position, onDragStart, withLocation, withCombine, onDragUpdate, returnedToStart, onDragEnd, preset, preset$1, origin, add, subtract, isEqual$1, negate, patch, distance2, closest$1, apply, executeClip, offsetByPosition, getCorners, noSpacing2, scroll$1, increase, clip2, getSubject, scrollDroppable, toDroppableMap, toDraggableMap, toDroppableList, toDraggableList, getDraggablesInsideDroppable, removeDraggableFromList, moveToNextCombine, isHomeOf, noDisplacedBy, emptyGroups, noImpact, noImpact$1, isWithin, isPartiallyVisibleThroughFrame, isTotallyVisibleThroughFrame, vertical, horizontal, isTotallyVisibleThroughFrameOnAxis, getDroppableDisplaced, isVisibleInDroppable, isVisibleInViewport, isVisible$1, isPartiallyVisible, isTotallyVisible, isTotallyVisibleOnAxis, getShouldAnimate, fromCombine, fromReorder, moveToNextIndex, getCombinedItemDisplacement, whenCombining, distanceFromStartToBorderBoxCenter, distanceFromEndToBorderBoxCenter, getCrossAxisBorderBoxCenter, goAfter, goBefore, goIntoStart, whenReordering, withDroppableDisplacement, getResultWithoutDroppableDisplacement, getPageBorderBoxCenterFromImpact, scrollViewport, speculativelyIncrease, withViewportDisplacement, getClientFromPageBorderBoxCenter, isTotallyVisibleInNewLocation, moveToNextPlace, getKnownActive, getBestCrossAxisDroppable, getCurrentPageBorderBoxCenter, getCurrentPageBorderBox, getClosestDraggable, getDisplacedBy, getRequiredGrowthForPlaceholder, withMaxScroll, addPlaceholder, removePlaceholder, moveToNewDroppable, moveCrossAxis, whatIsDraggedOver, getDroppableOver$1, moveInDirection, offsetRectByPosition, withDroppableScroll, getReorderImpact, combineThresholdDivisor, getCombineImpact, getDragImpact, patchDroppableMap, clearUnusedPlaceholder, recomputePlaceholders, update, recompute, getClientBorderBoxCenter, refreshSnap, getHomeLocation, getLiftEffect, patchDimensionMap, start, finish, offsetDraggable, getFrame, adjustAdditionsForScrollChanges, timingsKey, publishWhileDraggingInVirtual, isSnapping, postDroppableChange, idle$2, reducer, beforeInitialCapture, lift$1, initialPublish, publishWhileDragging, collectionStarting, updateDroppableScroll, updateDroppableIsEnabled, updateDroppableIsCombineEnabled, move, moveByWindowScroll, updateViewportMaxScroll, moveUp, moveDown, moveRight, moveLeft, flush, animateDrop, completeDrop, drop$1, dropPending, dropAnimationFinished, lift, style, curves, combine, timings, outOfTheWayTiming, transitions, moveTo, transforms, minDropTime, maxDropTime, dropTimeRange, maxDropTimeAtDistance, cancelDropModifier, getDropDuration, getNewHomeClientOffset, getDropImpact, dropMiddleware, drop, getWindowScroll3, shouldEnd, scrollListener, scrollListener$1, getExpiringAnnounce, getAsyncMarshal, areLocationsEqual, isCombineEqual, isCriticalEqual, withTimings, getDragStart, getPublisher, responders, dropAnimationFinishMiddleware, dropAnimationFinish, dropAnimationFlushOnScrollMiddleware, dropAnimationFlushOnScroll, dimensionMarshalStopper, focus, shouldStop, autoScroll, pendingDrop, pendingDrop$1, composeEnhancers, createStore2, clean$1, getMaxScroll, getDocumentElement, getMaxWindowScroll, getViewport, getInitialPublish, createDimensionMarshal, canStartDrag, scrollWindow, getScrollableDroppables, getScrollableDroppableOver, getBestScrollableDroppable, defaultAutoScrollerOptions, getDistanceThresholds, getPercentage, minScroll, getValueFromDistance, dampenValueByTime, getValue, getScrollOnAxis, adjustForSizeLimits, clean, getScroll$1, smallestSigned, getOverlap, canPartiallyScroll, canScrollWindow, getWindowOverlap, canScrollDroppable, getDroppableOverlap, getWindowScrollChange, getDroppableScrollChange, iframeCache, createCol, matrixPattern, getMatrix, getOrigin, findNearestTransform, defaultTransform, getTransform, applyTransformPoint, applyTransformRect, applyTransformSpacing, applyTransformBox, resetToOrigin, getIframeScroll, scroll, createFluidScroller, createJumpScroller, createAutoScroller, prefix2, dragHandle, draggable, droppable, scrollContainer, makeGetSelector, getStyles, noPointerEvents, getStyles$1, useIsomorphicLayoutEffect2, useLayoutEffect2, getHead, createStyleEl, alwaysDataAttr, dynamicDataAttr, getWindowFromEl, dragHandleCache, StoreContext, getBodyElement, visuallyHidden, visuallyHidden$1, getId, count$1, defaults, useUniqueId$1, AppContext, peerDependencies, semver, getVersion, isSatisfied, checkReactVersion, suffix, checkDoctype, tab, enter, escape, space, pageUp, pageDown, end, home, arrowLeft, arrowUp, arrowRight, arrowDown, preventedKeys, preventStandardKeyEvents, supportedEventName, supportedPageVisibilityEventName, primaryButton, sloppyClickThreshold, idle$1, scrollJumpKeys, idle, timeForLongPress, forcePressThreshold, interactiveTagNames, getBorderBoxCenterPosition, supportedMatchesName, defaultSensors, createResponders, createAutoScrollerOptions, count, useUniqueContextId$1, zIndexOptions, getDraggingTransition, getDraggingOpacity, getShouldDraggingAnimate, applyOffsetBox, DroppableContext, Draggable, Draggable$1, isStrictEqual, whatIsDraggedOverFromResult, getCombineWithFromResult, getCombineWithFromImpact, atRest, makeMapStateToProps$1, mapDispatchToProps$1, ConnectedDraggable, ConnectedDraggable$1, getScroll, isEqual2, isScroll, isAuto, isVisible, isEither, isBoth, isElementScrollable, isBodyScrollable, getClosestScrollable, getClosestScrollable$1, getIsFixed, getEnv, getDroppableDimension, getClient, getParents, getDimension, immediate, delayed, getListenerOptions, getScrollable, getClosestScrollableFromDrag, empty, getSize, getStyle, Placeholder, Placeholder$1, shared, standard, virtual, AnimateInOut, Droppable, Droppable$1, defaultProps, attachDefaultPropsToOwnProps, isMatchingType, getDraggable, makeMapStateToProps, mapDispatchToProps, ConnectedDroppable, ConnectedDroppable$1;
|
37622
37646
|
var init_dnd_esm = __esm({
|
37623
37647
|
"../../node_modules/@measured/dnd/dist/dnd.esm.js"() {
|
37624
37648
|
init_react_import();
|
@@ -41987,7 +42011,8 @@ var init_dnd_esm = __esm({
|
|
41987
42011
|
client,
|
41988
42012
|
page,
|
41989
42013
|
closest: closest2,
|
41990
|
-
transform
|
42014
|
+
transform,
|
42015
|
+
parents
|
41991
42016
|
}) => {
|
41992
42017
|
const frame = (() => {
|
41993
42018
|
if (!closest2) {
|
@@ -42036,7 +42061,8 @@ var init_dnd_esm = __esm({
|
|
42036
42061
|
page,
|
42037
42062
|
frame,
|
42038
42063
|
subject,
|
42039
|
-
transform
|
42064
|
+
transform,
|
42065
|
+
parents
|
42040
42066
|
};
|
42041
42067
|
return dimension;
|
42042
42068
|
};
|
@@ -42073,6 +42099,27 @@ var init_dnd_esm = __esm({
|
|
42073
42099
|
});
|
42074
42100
|
return client;
|
42075
42101
|
};
|
42102
|
+
getParents = (ref2) => {
|
42103
|
+
var _a3;
|
42104
|
+
const contextId = ref2.getAttribute(`${prefix2}-droppable-context-id`);
|
42105
|
+
const parentDescriptors = [];
|
42106
|
+
if (!contextId)
|
42107
|
+
return [];
|
42108
|
+
let currentEl = ref2;
|
42109
|
+
while (currentEl) {
|
42110
|
+
currentEl = (_a3 = currentEl.parentElement) == null ? void 0 : _a3.closest(`[${prefix2}-droppable-context-id="${contextId}"]`);
|
42111
|
+
const id = currentEl == null ? void 0 : currentEl.getAttribute(`${prefix2}-droppable-id`);
|
42112
|
+
if (id) {
|
42113
|
+
parentDescriptors.push({
|
42114
|
+
id,
|
42115
|
+
mode: "standard",
|
42116
|
+
type: "DEFAULT"
|
42117
|
+
});
|
42118
|
+
}
|
42119
|
+
}
|
42120
|
+
parentDescriptors.reverse();
|
42121
|
+
return parentDescriptors;
|
42122
|
+
};
|
42076
42123
|
getDimension = ({
|
42077
42124
|
ref: ref2,
|
42078
42125
|
descriptor,
|
@@ -42108,6 +42155,7 @@ var init_dnd_esm = __esm({
|
|
42108
42155
|
shouldClipSubject
|
42109
42156
|
};
|
42110
42157
|
})();
|
42158
|
+
const parents = getParents(ref2);
|
42111
42159
|
const dimension = getDroppableDimension({
|
42112
42160
|
descriptor,
|
42113
42161
|
isEnabled: !isDropDisabled,
|
@@ -42117,7 +42165,8 @@ var init_dnd_esm = __esm({
|
|
42117
42165
|
client,
|
42118
42166
|
page,
|
42119
42167
|
closest: closest2,
|
42120
|
-
transform
|
42168
|
+
transform,
|
42169
|
+
parents
|
42121
42170
|
});
|
42122
42171
|
return dimension;
|
42123
42172
|
};
|
@@ -42588,6 +42637,1291 @@ var init_dnd_esm = __esm({
|
|
42588
42637
|
}
|
42589
42638
|
});
|
42590
42639
|
|
42640
|
+
// ../../node_modules/ua-parser-js/src/ua-parser.js
|
42641
|
+
var require_ua_parser = __commonJS({
|
42642
|
+
"../../node_modules/ua-parser-js/src/ua-parser.js"(exports, module2) {
|
42643
|
+
init_react_import();
|
42644
|
+
(function(window2, undefined2) {
|
42645
|
+
"use strict";
|
42646
|
+
var LIBVERSION = "1.0.37", EMPTY = "", UNKNOWN = "?", FUNC_TYPE = "function", UNDEF_TYPE = "undefined", OBJ_TYPE = "object", STR_TYPE = "string", MAJOR = "major", MODEL = "model", NAME = "name", TYPE2 = "type", VENDOR = "vendor", VERSION = "version", ARCHITECTURE = "architecture", CONSOLE = "console", MOBILE = "mobile", TABLET = "tablet", SMARTTV = "smarttv", WEARABLE = "wearable", EMBEDDED = "embedded", UA_MAX_LENGTH = 500;
|
42647
|
+
var AMAZON = "Amazon", APPLE = "Apple", ASUS = "ASUS", BLACKBERRY = "BlackBerry", BROWSER = "Browser", CHROME = "Chrome", EDGE = "Edge", FIREFOX = "Firefox", GOOGLE = "Google", HUAWEI = "Huawei", LG = "LG", MICROSOFT = "Microsoft", MOTOROLA = "Motorola", OPERA = "Opera", SAMSUNG = "Samsung", SHARP = "Sharp", SONY = "Sony", XIAOMI = "Xiaomi", ZEBRA = "Zebra", FACEBOOK = "Facebook", CHROMIUM_OS = "Chromium OS", MAC_OS = "Mac OS";
|
42648
|
+
var extend = function(regexes2, extensions) {
|
42649
|
+
var mergedRegexes = {};
|
42650
|
+
for (var i2 in regexes2) {
|
42651
|
+
if (extensions[i2] && extensions[i2].length % 2 === 0) {
|
42652
|
+
mergedRegexes[i2] = extensions[i2].concat(regexes2[i2]);
|
42653
|
+
} else {
|
42654
|
+
mergedRegexes[i2] = regexes2[i2];
|
42655
|
+
}
|
42656
|
+
}
|
42657
|
+
return mergedRegexes;
|
42658
|
+
}, enumerize = function(arr) {
|
42659
|
+
var enums = {};
|
42660
|
+
for (var i2 = 0; i2 < arr.length; i2++) {
|
42661
|
+
enums[arr[i2].toUpperCase()] = arr[i2];
|
42662
|
+
}
|
42663
|
+
return enums;
|
42664
|
+
}, has = function(str1, str2) {
|
42665
|
+
return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;
|
42666
|
+
}, lowerize = function(str) {
|
42667
|
+
return str.toLowerCase();
|
42668
|
+
}, majorize = function(version2) {
|
42669
|
+
return typeof version2 === STR_TYPE ? version2.replace(/[^\d\.]/g, EMPTY).split(".")[0] : undefined2;
|
42670
|
+
}, trim = function(str, len) {
|
42671
|
+
if (typeof str === STR_TYPE) {
|
42672
|
+
str = str.replace(/^\s\s*/, EMPTY);
|
42673
|
+
return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);
|
42674
|
+
}
|
42675
|
+
};
|
42676
|
+
var rgxMapper = function(ua, arrays) {
|
42677
|
+
var i2 = 0, j, k, p, q, matches, match;
|
42678
|
+
while (i2 < arrays.length && !matches) {
|
42679
|
+
var regex = arrays[i2], props = arrays[i2 + 1];
|
42680
|
+
j = k = 0;
|
42681
|
+
while (j < regex.length && !matches) {
|
42682
|
+
if (!regex[j]) {
|
42683
|
+
break;
|
42684
|
+
}
|
42685
|
+
matches = regex[j++].exec(ua);
|
42686
|
+
if (!!matches) {
|
42687
|
+
for (p = 0; p < props.length; p++) {
|
42688
|
+
match = matches[++k];
|
42689
|
+
q = props[p];
|
42690
|
+
if (typeof q === OBJ_TYPE && q.length > 0) {
|
42691
|
+
if (q.length === 2) {
|
42692
|
+
if (typeof q[1] == FUNC_TYPE) {
|
42693
|
+
this[q[0]] = q[1].call(this, match);
|
42694
|
+
} else {
|
42695
|
+
this[q[0]] = q[1];
|
42696
|
+
}
|
42697
|
+
} else if (q.length === 3) {
|
42698
|
+
if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {
|
42699
|
+
this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined2;
|
42700
|
+
} else {
|
42701
|
+
this[q[0]] = match ? match.replace(q[1], q[2]) : undefined2;
|
42702
|
+
}
|
42703
|
+
} else if (q.length === 4) {
|
42704
|
+
this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined2;
|
42705
|
+
}
|
42706
|
+
} else {
|
42707
|
+
this[q] = match ? match : undefined2;
|
42708
|
+
}
|
42709
|
+
}
|
42710
|
+
}
|
42711
|
+
}
|
42712
|
+
i2 += 2;
|
42713
|
+
}
|
42714
|
+
}, strMapper = function(str, map) {
|
42715
|
+
for (var i2 in map) {
|
42716
|
+
if (typeof map[i2] === OBJ_TYPE && map[i2].length > 0) {
|
42717
|
+
for (var j = 0; j < map[i2].length; j++) {
|
42718
|
+
if (has(map[i2][j], str)) {
|
42719
|
+
return i2 === UNKNOWN ? undefined2 : i2;
|
42720
|
+
}
|
42721
|
+
}
|
42722
|
+
} else if (has(map[i2], str)) {
|
42723
|
+
return i2 === UNKNOWN ? undefined2 : i2;
|
42724
|
+
}
|
42725
|
+
}
|
42726
|
+
return str;
|
42727
|
+
};
|
42728
|
+
var oldSafariMap = {
|
42729
|
+
"1.0": "/8",
|
42730
|
+
"1.2": "/1",
|
42731
|
+
"1.3": "/3",
|
42732
|
+
"2.0": "/412",
|
42733
|
+
"2.0.2": "/416",
|
42734
|
+
"2.0.3": "/417",
|
42735
|
+
"2.0.4": "/419",
|
42736
|
+
"?": "/"
|
42737
|
+
}, windowsVersionMap = {
|
42738
|
+
"ME": "4.90",
|
42739
|
+
"NT 3.11": "NT3.51",
|
42740
|
+
"NT 4.0": "NT4.0",
|
42741
|
+
"2000": "NT 5.0",
|
42742
|
+
"XP": ["NT 5.1", "NT 5.2"],
|
42743
|
+
"Vista": "NT 6.0",
|
42744
|
+
"7": "NT 6.1",
|
42745
|
+
"8": "NT 6.2",
|
42746
|
+
"8.1": "NT 6.3",
|
42747
|
+
"10": ["NT 6.4", "NT 10.0"],
|
42748
|
+
"RT": "ARM"
|
42749
|
+
};
|
42750
|
+
var regexes = {
|
42751
|
+
browser: [
|
42752
|
+
[
|
42753
|
+
/\b(?:crmo|crios)\/([\w\.]+)/i
|
42754
|
+
// Chrome for Android/iOS
|
42755
|
+
],
|
42756
|
+
[VERSION, [NAME, "Chrome"]],
|
42757
|
+
[
|
42758
|
+
/edg(?:e|ios|a)?\/([\w\.]+)/i
|
42759
|
+
// Microsoft Edge
|
42760
|
+
],
|
42761
|
+
[VERSION, [NAME, "Edge"]],
|
42762
|
+
[
|
42763
|
+
// Presto based
|
42764
|
+
/(opera mini)\/([-\w\.]+)/i,
|
42765
|
+
// Opera Mini
|
42766
|
+
/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,
|
42767
|
+
// Opera Mobi/Tablet
|
42768
|
+
/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
|
42769
|
+
// Opera
|
42770
|
+
],
|
42771
|
+
[NAME, VERSION],
|
42772
|
+
[
|
42773
|
+
/opios[\/ ]+([\w\.]+)/i
|
42774
|
+
// Opera mini on iphone >= 8.0
|
42775
|
+
],
|
42776
|
+
[VERSION, [NAME, OPERA + " Mini"]],
|
42777
|
+
[
|
42778
|
+
/\bopr\/([\w\.]+)/i
|
42779
|
+
// Opera Webkit
|
42780
|
+
],
|
42781
|
+
[VERSION, [NAME, OPERA]],
|
42782
|
+
[
|
42783
|
+
// Mixed
|
42784
|
+
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
|
42785
|
+
// Baidu
|
42786
|
+
],
|
42787
|
+
[VERSION, [NAME, "Baidu"]],
|
42788
|
+
[
|
42789
|
+
/(kindle)\/([\w\.]+)/i,
|
42790
|
+
// Kindle
|
42791
|
+
/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,
|
42792
|
+
// Lunascape/Maxthon/Netfront/Jasmine/Blazer
|
42793
|
+
// Trident based
|
42794
|
+
/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,
|
42795
|
+
// Avant/IEMobile/SlimBrowser
|
42796
|
+
/(?:ms|\()(ie) ([\w\.]+)/i,
|
42797
|
+
// Internet Explorer
|
42798
|
+
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
|
42799
|
+
/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w\.]+)/i,
|
42800
|
+
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ
|
42801
|
+
/(heytap|ovi)browser\/([\d\.]+)/i,
|
42802
|
+
// Heytap/Ovi
|
42803
|
+
/(weibo)__([\d\.]+)/i
|
42804
|
+
// Weibo
|
42805
|
+
],
|
42806
|
+
[NAME, VERSION],
|
42807
|
+
[
|
42808
|
+
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
|
42809
|
+
// UCBrowser
|
42810
|
+
],
|
42811
|
+
[VERSION, [NAME, "UC" + BROWSER]],
|
42812
|
+
[
|
42813
|
+
/microm.+\bqbcore\/([\w\.]+)/i,
|
42814
|
+
// WeChat Desktop for Windows Built-in Browser
|
42815
|
+
/\bqbcore\/([\w\.]+).+microm/i,
|
42816
|
+
/micromessenger\/([\w\.]+)/i
|
42817
|
+
// WeChat
|
42818
|
+
],
|
42819
|
+
[VERSION, [NAME, "WeChat"]],
|
42820
|
+
[
|
42821
|
+
/konqueror\/([\w\.]+)/i
|
42822
|
+
// Konqueror
|
42823
|
+
],
|
42824
|
+
[VERSION, [NAME, "Konqueror"]],
|
42825
|
+
[
|
42826
|
+
/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
|
42827
|
+
// IE11
|
42828
|
+
],
|
42829
|
+
[VERSION, [NAME, "IE"]],
|
42830
|
+
[
|
42831
|
+
/ya(?:search)?browser\/([\w\.]+)/i
|
42832
|
+
// Yandex
|
42833
|
+
],
|
42834
|
+
[VERSION, [NAME, "Yandex"]],
|
42835
|
+
[
|
42836
|
+
/slbrowser\/([\w\.]+)/i
|
42837
|
+
// Smart Lenovo Browser
|
42838
|
+
],
|
42839
|
+
[VERSION, [NAME, "Smart Lenovo " + BROWSER]],
|
42840
|
+
[
|
42841
|
+
/(avast|avg)\/([\w\.]+)/i
|
42842
|
+
// Avast/AVG Secure Browser
|
42843
|
+
],
|
42844
|
+
[[NAME, /(.+)/, "$1 Secure " + BROWSER], VERSION],
|
42845
|
+
[
|
42846
|
+
/\bfocus\/([\w\.]+)/i
|
42847
|
+
// Firefox Focus
|
42848
|
+
],
|
42849
|
+
[VERSION, [NAME, FIREFOX + " Focus"]],
|
42850
|
+
[
|
42851
|
+
/\bopt\/([\w\.]+)/i
|
42852
|
+
// Opera Touch
|
42853
|
+
],
|
42854
|
+
[VERSION, [NAME, OPERA + " Touch"]],
|
42855
|
+
[
|
42856
|
+
/coc_coc\w+\/([\w\.]+)/i
|
42857
|
+
// Coc Coc Browser
|
42858
|
+
],
|
42859
|
+
[VERSION, [NAME, "Coc Coc"]],
|
42860
|
+
[
|
42861
|
+
/dolfin\/([\w\.]+)/i
|
42862
|
+
// Dolphin
|
42863
|
+
],
|
42864
|
+
[VERSION, [NAME, "Dolphin"]],
|
42865
|
+
[
|
42866
|
+
/coast\/([\w\.]+)/i
|
42867
|
+
// Opera Coast
|
42868
|
+
],
|
42869
|
+
[VERSION, [NAME, OPERA + " Coast"]],
|
42870
|
+
[
|
42871
|
+
/miuibrowser\/([\w\.]+)/i
|
42872
|
+
// MIUI Browser
|
42873
|
+
],
|
42874
|
+
[VERSION, [NAME, "MIUI " + BROWSER]],
|
42875
|
+
[
|
42876
|
+
/fxios\/([-\w\.]+)/i
|
42877
|
+
// Firefox for iOS
|
42878
|
+
],
|
42879
|
+
[VERSION, [NAME, FIREFOX]],
|
42880
|
+
[
|
42881
|
+
/\bqihu|(qi?ho?o?|360)browser/i
|
42882
|
+
// 360
|
42883
|
+
],
|
42884
|
+
[[NAME, "360 " + BROWSER]],
|
42885
|
+
[
|
42886
|
+
/(oculus|sailfish|huawei|vivo)browser\/([\w\.]+)/i
|
42887
|
+
],
|
42888
|
+
[[NAME, /(.+)/, "$1 " + BROWSER], VERSION],
|
42889
|
+
[
|
42890
|
+
// Oculus/Sailfish/HuaweiBrowser/VivoBrowser
|
42891
|
+
/samsungbrowser\/([\w\.]+)/i
|
42892
|
+
// Samsung Internet
|
42893
|
+
],
|
42894
|
+
[VERSION, [NAME, SAMSUNG + " Internet"]],
|
42895
|
+
[
|
42896
|
+
/(comodo_dragon)\/([\w\.]+)/i
|
42897
|
+
// Comodo Dragon
|
42898
|
+
],
|
42899
|
+
[[NAME, /_/g, " "], VERSION],
|
42900
|
+
[
|
42901
|
+
/metasr[\/ ]?([\d\.]+)/i
|
42902
|
+
// Sogou Explorer
|
42903
|
+
],
|
42904
|
+
[VERSION, [NAME, "Sogou Explorer"]],
|
42905
|
+
[
|
42906
|
+
/(sogou)mo\w+\/([\d\.]+)/i
|
42907
|
+
// Sogou Mobile
|
42908
|
+
],
|
42909
|
+
[[NAME, "Sogou Mobile"], VERSION],
|
42910
|
+
[
|
42911
|
+
/(electron)\/([\w\.]+) safari/i,
|
42912
|
+
// Electron-based App
|
42913
|
+
/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,
|
42914
|
+
// Tesla
|
42915
|
+
/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i
|
42916
|
+
// QQBrowser/2345 Browser
|
42917
|
+
],
|
42918
|
+
[NAME, VERSION],
|
42919
|
+
[
|
42920
|
+
/(lbbrowser)/i,
|
42921
|
+
// LieBao Browser
|
42922
|
+
/\[(linkedin)app\]/i
|
42923
|
+
// LinkedIn App for iOS & Android
|
42924
|
+
],
|
42925
|
+
[NAME],
|
42926
|
+
[
|
42927
|
+
// WebView
|
42928
|
+
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
|
42929
|
+
// Facebook App for iOS & Android
|
42930
|
+
],
|
42931
|
+
[[NAME, FACEBOOK], VERSION],
|
42932
|
+
[
|
42933
|
+
/(Klarna)\/([\w\.]+)/i,
|
42934
|
+
// Klarna Shopping Browser for iOS & Android
|
42935
|
+
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
|
42936
|
+
// Kakao App
|
42937
|
+
/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,
|
42938
|
+
// Naver InApp
|
42939
|
+
/safari (line)\/([\w\.]+)/i,
|
42940
|
+
// Line App for iOS
|
42941
|
+
/\b(line)\/([\w\.]+)\/iab/i,
|
42942
|
+
// Line App for Android
|
42943
|
+
/(alipay)client\/([\w\.]+)/i,
|
42944
|
+
// Alipay
|
42945
|
+
/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i
|
42946
|
+
// Chromium/Instagram/Snapchat
|
42947
|
+
],
|
42948
|
+
[NAME, VERSION],
|
42949
|
+
[
|
42950
|
+
/\bgsa\/([\w\.]+) .*safari\//i
|
42951
|
+
// Google Search Appliance on iOS
|
42952
|
+
],
|
42953
|
+
[VERSION, [NAME, "GSA"]],
|
42954
|
+
[
|
42955
|
+
/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i
|
42956
|
+
// TikTok
|
42957
|
+
],
|
42958
|
+
[VERSION, [NAME, "TikTok"]],
|
42959
|
+
[
|
42960
|
+
/headlesschrome(?:\/([\w\.]+)| )/i
|
42961
|
+
// Chrome Headless
|
42962
|
+
],
|
42963
|
+
[VERSION, [NAME, CHROME + " Headless"]],
|
42964
|
+
[
|
42965
|
+
/ wv\).+(chrome)\/([\w\.]+)/i
|
42966
|
+
// Chrome WebView
|
42967
|
+
],
|
42968
|
+
[[NAME, CHROME + " WebView"], VERSION],
|
42969
|
+
[
|
42970
|
+
/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
|
42971
|
+
// Android Browser
|
42972
|
+
],
|
42973
|
+
[VERSION, [NAME, "Android " + BROWSER]],
|
42974
|
+
[
|
42975
|
+
/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
|
42976
|
+
// Chrome/OmniWeb/Arora/Tizen/Nokia
|
42977
|
+
],
|
42978
|
+
[NAME, VERSION],
|
42979
|
+
[
|
42980
|
+
/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i
|
42981
|
+
// Mobile Safari
|
42982
|
+
],
|
42983
|
+
[VERSION, [NAME, "Mobile Safari"]],
|
42984
|
+
[
|
42985
|
+
/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i
|
42986
|
+
// Safari & Safari Mobile
|
42987
|
+
],
|
42988
|
+
[VERSION, NAME],
|
42989
|
+
[
|
42990
|
+
/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
|
42991
|
+
// Safari < 3.0
|
42992
|
+
],
|
42993
|
+
[NAME, [VERSION, strMapper, oldSafariMap]],
|
42994
|
+
[
|
42995
|
+
/(webkit|khtml)\/([\w\.]+)/i
|
42996
|
+
],
|
42997
|
+
[NAME, VERSION],
|
42998
|
+
[
|
42999
|
+
// Gecko based
|
43000
|
+
/(navigator|netscape\d?)\/([-\w\.]+)/i
|
43001
|
+
// Netscape
|
43002
|
+
],
|
43003
|
+
[[NAME, "Netscape"], VERSION],
|
43004
|
+
[
|
43005
|
+
/mobile vr; rv:([\w\.]+)\).+firefox/i
|
43006
|
+
// Firefox Reality
|
43007
|
+
],
|
43008
|
+
[VERSION, [NAME, FIREFOX + " Reality"]],
|
43009
|
+
[
|
43010
|
+
/ekiohf.+(flow)\/([\w\.]+)/i,
|
43011
|
+
// Flow
|
43012
|
+
/(swiftfox)/i,
|
43013
|
+
// Swiftfox
|
43014
|
+
/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,
|
43015
|
+
// IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar
|
43016
|
+
/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,
|
43017
|
+
// Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix
|
43018
|
+
/(firefox)\/([\w\.]+)/i,
|
43019
|
+
// Other Firefox-based
|
43020
|
+
/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,
|
43021
|
+
// Mozilla
|
43022
|
+
// Other
|
43023
|
+
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
|
43024
|
+
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser
|
43025
|
+
/(links) \(([\w\.]+)/i,
|
43026
|
+
// Links
|
43027
|
+
/panasonic;(viera)/i
|
43028
|
+
// Panasonic Viera
|
43029
|
+
],
|
43030
|
+
[NAME, VERSION],
|
43031
|
+
[
|
43032
|
+
/(cobalt)\/([\w\.]+)/i
|
43033
|
+
// Cobalt
|
43034
|
+
],
|
43035
|
+
[NAME, [VERSION, /master.|lts./, ""]]
|
43036
|
+
],
|
43037
|
+
cpu: [
|
43038
|
+
[
|
43039
|
+
/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i
|
43040
|
+
// AMD64 (x64)
|
43041
|
+
],
|
43042
|
+
[[ARCHITECTURE, "amd64"]],
|
43043
|
+
[
|
43044
|
+
/(ia32(?=;))/i
|
43045
|
+
// IA32 (quicktime)
|
43046
|
+
],
|
43047
|
+
[[ARCHITECTURE, lowerize]],
|
43048
|
+
[
|
43049
|
+
/((?:i[346]|x)86)[;\)]/i
|
43050
|
+
// IA32 (x86)
|
43051
|
+
],
|
43052
|
+
[[ARCHITECTURE, "ia32"]],
|
43053
|
+
[
|
43054
|
+
/\b(aarch64|arm(v?8e?l?|_?64))\b/i
|
43055
|
+
// ARM64
|
43056
|
+
],
|
43057
|
+
[[ARCHITECTURE, "arm64"]],
|
43058
|
+
[
|
43059
|
+
/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i
|
43060
|
+
// ARMHF
|
43061
|
+
],
|
43062
|
+
[[ARCHITECTURE, "armhf"]],
|
43063
|
+
[
|
43064
|
+
// PocketPC mistakenly identified as PowerPC
|
43065
|
+
/windows (ce|mobile); ppc;/i
|
43066
|
+
],
|
43067
|
+
[[ARCHITECTURE, "arm"]],
|
43068
|
+
[
|
43069
|
+
/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i
|
43070
|
+
// PowerPC
|
43071
|
+
],
|
43072
|
+
[[ARCHITECTURE, /ower/, EMPTY, lowerize]],
|
43073
|
+
[
|
43074
|
+
/(sun4\w)[;\)]/i
|
43075
|
+
// SPARC
|
43076
|
+
],
|
43077
|
+
[[ARCHITECTURE, "sparc"]],
|
43078
|
+
[
|
43079
|
+
/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
|
43080
|
+
// IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
|
43081
|
+
],
|
43082
|
+
[[ARCHITECTURE, lowerize]]
|
43083
|
+
],
|
43084
|
+
device: [
|
43085
|
+
[
|
43086
|
+
//////////////////////////
|
43087
|
+
// MOBILES & TABLETS
|
43088
|
+
/////////////////////////
|
43089
|
+
// Samsung
|
43090
|
+
/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
|
43091
|
+
],
|
43092
|
+
[MODEL, [VENDOR, SAMSUNG], [TYPE2, TABLET]],
|
43093
|
+
[
|
43094
|
+
/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
|
43095
|
+
/samsung[- ]([-\w]+)/i,
|
43096
|
+
/sec-(sgh\w+)/i
|
43097
|
+
],
|
43098
|
+
[MODEL, [VENDOR, SAMSUNG], [TYPE2, MOBILE]],
|
43099
|
+
[
|
43100
|
+
// Apple
|
43101
|
+
/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i
|
43102
|
+
// iPod/iPhone
|
43103
|
+
],
|
43104
|
+
[MODEL, [VENDOR, APPLE], [TYPE2, MOBILE]],
|
43105
|
+
[
|
43106
|
+
/\((ipad);[-\w\),; ]+apple/i,
|
43107
|
+
// iPad
|
43108
|
+
/applecoremedia\/[\w\.]+ \((ipad)/i,
|
43109
|
+
/\b(ipad)\d\d?,\d\d?[;\]].+ios/i
|
43110
|
+
],
|
43111
|
+
[MODEL, [VENDOR, APPLE], [TYPE2, TABLET]],
|
43112
|
+
[
|
43113
|
+
/(macintosh);/i
|
43114
|
+
],
|
43115
|
+
[MODEL, [VENDOR, APPLE]],
|
43116
|
+
[
|
43117
|
+
// Sharp
|
43118
|
+
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
43119
|
+
],
|
43120
|
+
[MODEL, [VENDOR, SHARP], [TYPE2, MOBILE]],
|
43121
|
+
[
|
43122
|
+
// Huawei
|
43123
|
+
/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
|
43124
|
+
],
|
43125
|
+
[MODEL, [VENDOR, HUAWEI], [TYPE2, TABLET]],
|
43126
|
+
[
|
43127
|
+
/(?:huawei|honor)([-\w ]+)[;\)]/i,
|
43128
|
+
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
|
43129
|
+
],
|
43130
|
+
[MODEL, [VENDOR, HUAWEI], [TYPE2, MOBILE]],
|
43131
|
+
[
|
43132
|
+
// Xiaomi
|
43133
|
+
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,
|
43134
|
+
// Xiaomi POCO
|
43135
|
+
/\b; (\w+) build\/hm\1/i,
|
43136
|
+
// Xiaomi Hongmi 'numeric' models
|
43137
|
+
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,
|
43138
|
+
// Xiaomi Hongmi
|
43139
|
+
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,
|
43140
|
+
// Xiaomi Redmi
|
43141
|
+
/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,
|
43142
|
+
// Xiaomi Redmi 'numeric' models
|
43143
|
+
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i
|
43144
|
+
// Xiaomi Mi
|
43145
|
+
],
|
43146
|
+
[[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE2, MOBILE]],
|
43147
|
+
[
|
43148
|
+
/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,
|
43149
|
+
// Redmi Pad
|
43150
|
+
/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i
|
43151
|
+
// Mi Pad tablets
|
43152
|
+
],
|
43153
|
+
[[MODEL, /_/g, " "], [VENDOR, XIAOMI], [TYPE2, TABLET]],
|
43154
|
+
[
|
43155
|
+
// OPPO
|
43156
|
+
/; (\w+) bui.+ oppo/i,
|
43157
|
+
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
|
43158
|
+
],
|
43159
|
+
[MODEL, [VENDOR, "OPPO"], [TYPE2, MOBILE]],
|
43160
|
+
[
|
43161
|
+
// Vivo
|
43162
|
+
/vivo (\w+)(?: bui|\))/i,
|
43163
|
+
/\b(v[12]\d{3}\w?[at])(?: bui|;)/i
|
43164
|
+
],
|
43165
|
+
[MODEL, [VENDOR, "Vivo"], [TYPE2, MOBILE]],
|
43166
|
+
[
|
43167
|
+
// Realme
|
43168
|
+
/\b(rmx[1-3]\d{3})(?: bui|;|\))/i
|
43169
|
+
],
|
43170
|
+
[MODEL, [VENDOR, "Realme"], [TYPE2, MOBILE]],
|
43171
|
+
[
|
43172
|
+
// Motorola
|
43173
|
+
/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
|
43174
|
+
/\bmot(?:orola)?[- ](\w*)/i,
|
43175
|
+
/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
|
43176
|
+
],
|
43177
|
+
[MODEL, [VENDOR, MOTOROLA], [TYPE2, MOBILE]],
|
43178
|
+
[
|
43179
|
+
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
|
43180
|
+
],
|
43181
|
+
[MODEL, [VENDOR, MOTOROLA], [TYPE2, TABLET]],
|
43182
|
+
[
|
43183
|
+
// LG
|
43184
|
+
/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
|
43185
|
+
],
|
43186
|
+
[MODEL, [VENDOR, LG], [TYPE2, TABLET]],
|
43187
|
+
[
|
43188
|
+
/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
|
43189
|
+
/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
|
43190
|
+
/\blg-?([\d\w]+) bui/i
|
43191
|
+
],
|
43192
|
+
[MODEL, [VENDOR, LG], [TYPE2, MOBILE]],
|
43193
|
+
[
|
43194
|
+
// Lenovo
|
43195
|
+
/(ideatab[-\w ]+)/i,
|
43196
|
+
/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
|
43197
|
+
],
|
43198
|
+
[MODEL, [VENDOR, "Lenovo"], [TYPE2, TABLET]],
|
43199
|
+
[
|
43200
|
+
// Nokia
|
43201
|
+
/(?:maemo|nokia).*(n900|lumia \d+)/i,
|
43202
|
+
/nokia[-_ ]?([-\w\.]*)/i
|
43203
|
+
],
|
43204
|
+
[[MODEL, /_/g, " "], [VENDOR, "Nokia"], [TYPE2, MOBILE]],
|
43205
|
+
[
|
43206
|
+
// Google
|
43207
|
+
/(pixel c)\b/i
|
43208
|
+
// Google Pixel C
|
43209
|
+
],
|
43210
|
+
[MODEL, [VENDOR, GOOGLE], [TYPE2, TABLET]],
|
43211
|
+
[
|
43212
|
+
/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i
|
43213
|
+
// Google Pixel
|
43214
|
+
],
|
43215
|
+
[MODEL, [VENDOR, GOOGLE], [TYPE2, MOBILE]],
|
43216
|
+
[
|
43217
|
+
// Sony
|
43218
|
+
/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
|
43219
|
+
],
|
43220
|
+
[MODEL, [VENDOR, SONY], [TYPE2, MOBILE]],
|
43221
|
+
[
|
43222
|
+
/sony tablet [ps]/i,
|
43223
|
+
/\b(?:sony)?sgp\w+(?: bui|\))/i
|
43224
|
+
],
|
43225
|
+
[[MODEL, "Xperia Tablet"], [VENDOR, SONY], [TYPE2, TABLET]],
|
43226
|
+
[
|
43227
|
+
// OnePlus
|
43228
|
+
/ (kb2005|in20[12]5|be20[12][59])\b/i,
|
43229
|
+
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
43230
|
+
],
|
43231
|
+
[MODEL, [VENDOR, "OnePlus"], [TYPE2, MOBILE]],
|
43232
|
+
[
|
43233
|
+
// Amazon
|
43234
|
+
/(alexa)webm/i,
|
43235
|
+
/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,
|
43236
|
+
// Kindle Fire without Silk / Echo Show
|
43237
|
+
/(kf[a-z]+)( bui|\)).+silk\//i
|
43238
|
+
// Kindle Fire HD
|
43239
|
+
],
|
43240
|
+
[MODEL, [VENDOR, AMAZON], [TYPE2, TABLET]],
|
43241
|
+
[
|
43242
|
+
/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
|
43243
|
+
// Fire Phone
|
43244
|
+
],
|
43245
|
+
[[MODEL, /(.+)/g, "Fire Phone $1"], [VENDOR, AMAZON], [TYPE2, MOBILE]],
|
43246
|
+
[
|
43247
|
+
// BlackBerry
|
43248
|
+
/(playbook);[-\w\),; ]+(rim)/i
|
43249
|
+
// BlackBerry PlayBook
|
43250
|
+
],
|
43251
|
+
[MODEL, VENDOR, [TYPE2, TABLET]],
|
43252
|
+
[
|
43253
|
+
/\b((?:bb[a-f]|st[hv])100-\d)/i,
|
43254
|
+
/\(bb10; (\w+)/i
|
43255
|
+
// BlackBerry 10
|
43256
|
+
],
|
43257
|
+
[MODEL, [VENDOR, BLACKBERRY], [TYPE2, MOBILE]],
|
43258
|
+
[
|
43259
|
+
// Asus
|
43260
|
+
/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
|
43261
|
+
],
|
43262
|
+
[MODEL, [VENDOR, ASUS], [TYPE2, TABLET]],
|
43263
|
+
[
|
43264
|
+
/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
|
43265
|
+
],
|
43266
|
+
[MODEL, [VENDOR, ASUS], [TYPE2, MOBILE]],
|
43267
|
+
[
|
43268
|
+
// HTC
|
43269
|
+
/(nexus 9)/i
|
43270
|
+
// HTC Nexus 9
|
43271
|
+
],
|
43272
|
+
[MODEL, [VENDOR, "HTC"], [TYPE2, TABLET]],
|
43273
|
+
[
|
43274
|
+
/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,
|
43275
|
+
// HTC
|
43276
|
+
// ZTE
|
43277
|
+
/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,
|
43278
|
+
/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
|
43279
|
+
// Alcatel/GeeksPhone/Nexian/Panasonic/Sony
|
43280
|
+
],
|
43281
|
+
[VENDOR, [MODEL, /_/g, " "], [TYPE2, MOBILE]],
|
43282
|
+
[
|
43283
|
+
// Acer
|
43284
|
+
/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i
|
43285
|
+
],
|
43286
|
+
[MODEL, [VENDOR, "Acer"], [TYPE2, TABLET]],
|
43287
|
+
[
|
43288
|
+
// Meizu
|
43289
|
+
/droid.+; (m[1-5] note) bui/i,
|
43290
|
+
/\bmz-([-\w]{2,})/i
|
43291
|
+
],
|
43292
|
+
[MODEL, [VENDOR, "Meizu"], [TYPE2, MOBILE]],
|
43293
|
+
[
|
43294
|
+
// Ulefone
|
43295
|
+
/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
|
43296
|
+
],
|
43297
|
+
[MODEL, [VENDOR, "Ulefone"], [TYPE2, MOBILE]],
|
43298
|
+
[
|
43299
|
+
// MIXED
|
43300
|
+
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
|
43301
|
+
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
|
43302
|
+
/(hp) ([\w ]+\w)/i,
|
43303
|
+
// HP iPAQ
|
43304
|
+
/(asus)-?(\w+)/i,
|
43305
|
+
// Asus
|
43306
|
+
/(microsoft); (lumia[\w ]+)/i,
|
43307
|
+
// Microsoft Lumia
|
43308
|
+
/(lenovo)[-_ ]?([-\w]+)/i,
|
43309
|
+
// Lenovo
|
43310
|
+
/(jolla)/i,
|
43311
|
+
// Jolla
|
43312
|
+
/(oppo) ?([\w ]+) bui/i
|
43313
|
+
// OPPO
|
43314
|
+
],
|
43315
|
+
[VENDOR, MODEL, [TYPE2, MOBILE]],
|
43316
|
+
[
|
43317
|
+
/(kobo)\s(ereader|touch)/i,
|
43318
|
+
// Kobo
|
43319
|
+
/(archos) (gamepad2?)/i,
|
43320
|
+
// Archos
|
43321
|
+
/(hp).+(touchpad(?!.+tablet)|tablet)/i,
|
43322
|
+
// HP TouchPad
|
43323
|
+
/(kindle)\/([\w\.]+)/i,
|
43324
|
+
// Kindle
|
43325
|
+
/(nook)[\w ]+build\/(\w+)/i,
|
43326
|
+
// Nook
|
43327
|
+
/(dell) (strea[kpr\d ]*[\dko])/i,
|
43328
|
+
// Dell Streak
|
43329
|
+
/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,
|
43330
|
+
// Le Pan Tablets
|
43331
|
+
/(trinity)[- ]*(t\d{3}) bui/i,
|
43332
|
+
// Trinity Tablets
|
43333
|
+
/(gigaset)[- ]+(q\w{1,9}) bui/i,
|
43334
|
+
// Gigaset Tablets
|
43335
|
+
/(vodafone) ([\w ]+)(?:\)| bui)/i
|
43336
|
+
// Vodafone
|
43337
|
+
],
|
43338
|
+
[VENDOR, MODEL, [TYPE2, TABLET]],
|
43339
|
+
[
|
43340
|
+
/(surface duo)/i
|
43341
|
+
// Surface Duo
|
43342
|
+
],
|
43343
|
+
[MODEL, [VENDOR, MICROSOFT], [TYPE2, TABLET]],
|
43344
|
+
[
|
43345
|
+
/droid [\d\.]+; (fp\du?)(?: b|\))/i
|
43346
|
+
// Fairphone
|
43347
|
+
],
|
43348
|
+
[MODEL, [VENDOR, "Fairphone"], [TYPE2, MOBILE]],
|
43349
|
+
[
|
43350
|
+
/(u304aa)/i
|
43351
|
+
// AT&T
|
43352
|
+
],
|
43353
|
+
[MODEL, [VENDOR, "AT&T"], [TYPE2, MOBILE]],
|
43354
|
+
[
|
43355
|
+
/\bsie-(\w*)/i
|
43356
|
+
// Siemens
|
43357
|
+
],
|
43358
|
+
[MODEL, [VENDOR, "Siemens"], [TYPE2, MOBILE]],
|
43359
|
+
[
|
43360
|
+
/\b(rct\w+) b/i
|
43361
|
+
// RCA Tablets
|
43362
|
+
],
|
43363
|
+
[MODEL, [VENDOR, "RCA"], [TYPE2, TABLET]],
|
43364
|
+
[
|
43365
|
+
/\b(venue[\d ]{2,7}) b/i
|
43366
|
+
// Dell Venue Tablets
|
43367
|
+
],
|
43368
|
+
[MODEL, [VENDOR, "Dell"], [TYPE2, TABLET]],
|
43369
|
+
[
|
43370
|
+
/\b(q(?:mv|ta)\w+) b/i
|
43371
|
+
// Verizon Tablet
|
43372
|
+
],
|
43373
|
+
[MODEL, [VENDOR, "Verizon"], [TYPE2, TABLET]],
|
43374
|
+
[
|
43375
|
+
/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i
|
43376
|
+
// Barnes & Noble Tablet
|
43377
|
+
],
|
43378
|
+
[MODEL, [VENDOR, "Barnes & Noble"], [TYPE2, TABLET]],
|
43379
|
+
[
|
43380
|
+
/\b(tm\d{3}\w+) b/i
|
43381
|
+
],
|
43382
|
+
[MODEL, [VENDOR, "NuVision"], [TYPE2, TABLET]],
|
43383
|
+
[
|
43384
|
+
/\b(k88) b/i
|
43385
|
+
// ZTE K Series Tablet
|
43386
|
+
],
|
43387
|
+
[MODEL, [VENDOR, "ZTE"], [TYPE2, TABLET]],
|
43388
|
+
[
|
43389
|
+
/\b(nx\d{3}j) b/i
|
43390
|
+
// ZTE Nubia
|
43391
|
+
],
|
43392
|
+
[MODEL, [VENDOR, "ZTE"], [TYPE2, MOBILE]],
|
43393
|
+
[
|
43394
|
+
/\b(gen\d{3}) b.+49h/i
|
43395
|
+
// Swiss GEN Mobile
|
43396
|
+
],
|
43397
|
+
[MODEL, [VENDOR, "Swiss"], [TYPE2, MOBILE]],
|
43398
|
+
[
|
43399
|
+
/\b(zur\d{3}) b/i
|
43400
|
+
// Swiss ZUR Tablet
|
43401
|
+
],
|
43402
|
+
[MODEL, [VENDOR, "Swiss"], [TYPE2, TABLET]],
|
43403
|
+
[
|
43404
|
+
/\b((zeki)?tb.*\b) b/i
|
43405
|
+
// Zeki Tablets
|
43406
|
+
],
|
43407
|
+
[MODEL, [VENDOR, "Zeki"], [TYPE2, TABLET]],
|
43408
|
+
[
|
43409
|
+
/\b([yr]\d{2}) b/i,
|
43410
|
+
/\b(dragon[- ]+touch |dt)(\w{5}) b/i
|
43411
|
+
// Dragon Touch Tablet
|
43412
|
+
],
|
43413
|
+
[[VENDOR, "Dragon Touch"], MODEL, [TYPE2, TABLET]],
|
43414
|
+
[
|
43415
|
+
/\b(ns-?\w{0,9}) b/i
|
43416
|
+
// Insignia Tablets
|
43417
|
+
],
|
43418
|
+
[MODEL, [VENDOR, "Insignia"], [TYPE2, TABLET]],
|
43419
|
+
[
|
43420
|
+
/\b((nxa|next)-?\w{0,9}) b/i
|
43421
|
+
// NextBook Tablets
|
43422
|
+
],
|
43423
|
+
[MODEL, [VENDOR, "NextBook"], [TYPE2, TABLET]],
|
43424
|
+
[
|
43425
|
+
/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i
|
43426
|
+
// Voice Xtreme Phones
|
43427
|
+
],
|
43428
|
+
[[VENDOR, "Voice"], MODEL, [TYPE2, MOBILE]],
|
43429
|
+
[
|
43430
|
+
/\b(lvtel\-)?(v1[12]) b/i
|
43431
|
+
// LvTel Phones
|
43432
|
+
],
|
43433
|
+
[[VENDOR, "LvTel"], MODEL, [TYPE2, MOBILE]],
|
43434
|
+
[
|
43435
|
+
/\b(ph-1) /i
|
43436
|
+
// Essential PH-1
|
43437
|
+
],
|
43438
|
+
[MODEL, [VENDOR, "Essential"], [TYPE2, MOBILE]],
|
43439
|
+
[
|
43440
|
+
/\b(v(100md|700na|7011|917g).*\b) b/i
|
43441
|
+
// Envizen Tablets
|
43442
|
+
],
|
43443
|
+
[MODEL, [VENDOR, "Envizen"], [TYPE2, TABLET]],
|
43444
|
+
[
|
43445
|
+
/\b(trio[-\w\. ]+) b/i
|
43446
|
+
// MachSpeed Tablets
|
43447
|
+
],
|
43448
|
+
[MODEL, [VENDOR, "MachSpeed"], [TYPE2, TABLET]],
|
43449
|
+
[
|
43450
|
+
/\btu_(1491) b/i
|
43451
|
+
// Rotor Tablets
|
43452
|
+
],
|
43453
|
+
[MODEL, [VENDOR, "Rotor"], [TYPE2, TABLET]],
|
43454
|
+
[
|
43455
|
+
/(shield[\w ]+) b/i
|
43456
|
+
// Nvidia Shield Tablets
|
43457
|
+
],
|
43458
|
+
[MODEL, [VENDOR, "Nvidia"], [TYPE2, TABLET]],
|
43459
|
+
[
|
43460
|
+
/(sprint) (\w+)/i
|
43461
|
+
// Sprint Phones
|
43462
|
+
],
|
43463
|
+
[VENDOR, MODEL, [TYPE2, MOBILE]],
|
43464
|
+
[
|
43465
|
+
/(kin\.[onetw]{3})/i
|
43466
|
+
// Microsoft Kin
|
43467
|
+
],
|
43468
|
+
[[MODEL, /\./g, " "], [VENDOR, MICROSOFT], [TYPE2, MOBILE]],
|
43469
|
+
[
|
43470
|
+
/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
|
43471
|
+
// Zebra
|
43472
|
+
],
|
43473
|
+
[MODEL, [VENDOR, ZEBRA], [TYPE2, TABLET]],
|
43474
|
+
[
|
43475
|
+
/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
|
43476
|
+
],
|
43477
|
+
[MODEL, [VENDOR, ZEBRA], [TYPE2, MOBILE]],
|
43478
|
+
[
|
43479
|
+
///////////////////
|
43480
|
+
// SMARTTVS
|
43481
|
+
///////////////////
|
43482
|
+
/smart-tv.+(samsung)/i
|
43483
|
+
// Samsung
|
43484
|
+
],
|
43485
|
+
[VENDOR, [TYPE2, SMARTTV]],
|
43486
|
+
[
|
43487
|
+
/hbbtv.+maple;(\d+)/i
|
43488
|
+
],
|
43489
|
+
[[MODEL, /^/, "SmartTV"], [VENDOR, SAMSUNG], [TYPE2, SMARTTV]],
|
43490
|
+
[
|
43491
|
+
/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i
|
43492
|
+
// LG SmartTV
|
43493
|
+
],
|
43494
|
+
[[VENDOR, LG], [TYPE2, SMARTTV]],
|
43495
|
+
[
|
43496
|
+
/(apple) ?tv/i
|
43497
|
+
// Apple TV
|
43498
|
+
],
|
43499
|
+
[VENDOR, [MODEL, APPLE + " TV"], [TYPE2, SMARTTV]],
|
43500
|
+
[
|
43501
|
+
/crkey/i
|
43502
|
+
// Google Chromecast
|
43503
|
+
],
|
43504
|
+
[[MODEL, CHROME + "cast"], [VENDOR, GOOGLE], [TYPE2, SMARTTV]],
|
43505
|
+
[
|
43506
|
+
/droid.+aft(\w+)( bui|\))/i
|
43507
|
+
// Fire TV
|
43508
|
+
],
|
43509
|
+
[MODEL, [VENDOR, AMAZON], [TYPE2, SMARTTV]],
|
43510
|
+
[
|
43511
|
+
/\(dtv[\);].+(aquos)/i,
|
43512
|
+
/(aquos-tv[\w ]+)\)/i
|
43513
|
+
// Sharp
|
43514
|
+
],
|
43515
|
+
[MODEL, [VENDOR, SHARP], [TYPE2, SMARTTV]],
|
43516
|
+
[
|
43517
|
+
/(bravia[\w ]+)( bui|\))/i
|
43518
|
+
// Sony
|
43519
|
+
],
|
43520
|
+
[MODEL, [VENDOR, SONY], [TYPE2, SMARTTV]],
|
43521
|
+
[
|
43522
|
+
/(mitv-\w{5}) bui/i
|
43523
|
+
// Xiaomi
|
43524
|
+
],
|
43525
|
+
[MODEL, [VENDOR, XIAOMI], [TYPE2, SMARTTV]],
|
43526
|
+
[
|
43527
|
+
/Hbbtv.*(technisat) (.*);/i
|
43528
|
+
// TechniSAT
|
43529
|
+
],
|
43530
|
+
[VENDOR, MODEL, [TYPE2, SMARTTV]],
|
43531
|
+
[
|
43532
|
+
/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,
|
43533
|
+
// Roku
|
43534
|
+
/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i
|
43535
|
+
// HbbTV devices
|
43536
|
+
],
|
43537
|
+
[[VENDOR, trim], [MODEL, trim], [TYPE2, SMARTTV]],
|
43538
|
+
[
|
43539
|
+
/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
|
43540
|
+
// SmartTV from Unidentified Vendors
|
43541
|
+
],
|
43542
|
+
[[TYPE2, SMARTTV]],
|
43543
|
+
[
|
43544
|
+
///////////////////
|
43545
|
+
// CONSOLES
|
43546
|
+
///////////////////
|
43547
|
+
/(ouya)/i,
|
43548
|
+
// Ouya
|
43549
|
+
/(nintendo) ([wids3utch]+)/i
|
43550
|
+
// Nintendo
|
43551
|
+
],
|
43552
|
+
[VENDOR, MODEL, [TYPE2, CONSOLE]],
|
43553
|
+
[
|
43554
|
+
/droid.+; (shield) bui/i
|
43555
|
+
// Nvidia
|
43556
|
+
],
|
43557
|
+
[MODEL, [VENDOR, "Nvidia"], [TYPE2, CONSOLE]],
|
43558
|
+
[
|
43559
|
+
/(playstation [345portablevi]+)/i
|
43560
|
+
// Playstation
|
43561
|
+
],
|
43562
|
+
[MODEL, [VENDOR, SONY], [TYPE2, CONSOLE]],
|
43563
|
+
[
|
43564
|
+
/\b(xbox(?: one)?(?!; xbox))[\); ]/i
|
43565
|
+
// Microsoft Xbox
|
43566
|
+
],
|
43567
|
+
[MODEL, [VENDOR, MICROSOFT], [TYPE2, CONSOLE]],
|
43568
|
+
[
|
43569
|
+
///////////////////
|
43570
|
+
// WEARABLES
|
43571
|
+
///////////////////
|
43572
|
+
/((pebble))app/i
|
43573
|
+
// Pebble
|
43574
|
+
],
|
43575
|
+
[VENDOR, MODEL, [TYPE2, WEARABLE]],
|
43576
|
+
[
|
43577
|
+
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i
|
43578
|
+
// Apple Watch
|
43579
|
+
],
|
43580
|
+
[MODEL, [VENDOR, APPLE], [TYPE2, WEARABLE]],
|
43581
|
+
[
|
43582
|
+
/droid.+; (glass) \d/i
|
43583
|
+
// Google Glass
|
43584
|
+
],
|
43585
|
+
[MODEL, [VENDOR, GOOGLE], [TYPE2, WEARABLE]],
|
43586
|
+
[
|
43587
|
+
/droid.+; (wt63?0{2,3})\)/i
|
43588
|
+
],
|
43589
|
+
[MODEL, [VENDOR, ZEBRA], [TYPE2, WEARABLE]],
|
43590
|
+
[
|
43591
|
+
/(quest( 2| pro)?)/i
|
43592
|
+
// Oculus Quest
|
43593
|
+
],
|
43594
|
+
[MODEL, [VENDOR, FACEBOOK], [TYPE2, WEARABLE]],
|
43595
|
+
[
|
43596
|
+
///////////////////
|
43597
|
+
// EMBEDDED
|
43598
|
+
///////////////////
|
43599
|
+
/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
|
43600
|
+
// Tesla
|
43601
|
+
],
|
43602
|
+
[VENDOR, [TYPE2, EMBEDDED]],
|
43603
|
+
[
|
43604
|
+
/(aeobc)\b/i
|
43605
|
+
// Echo Dot
|
43606
|
+
],
|
43607
|
+
[MODEL, [VENDOR, AMAZON], [TYPE2, EMBEDDED]],
|
43608
|
+
[
|
43609
|
+
////////////////////
|
43610
|
+
// MIXED (GENERIC)
|
43611
|
+
///////////////////
|
43612
|
+
/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i
|
43613
|
+
// Android Phones from Unidentified Vendors
|
43614
|
+
],
|
43615
|
+
[MODEL, [TYPE2, MOBILE]],
|
43616
|
+
[
|
43617
|
+
/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i
|
43618
|
+
// Android Tablets from Unidentified Vendors
|
43619
|
+
],
|
43620
|
+
[MODEL, [TYPE2, TABLET]],
|
43621
|
+
[
|
43622
|
+
/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i
|
43623
|
+
// Unidentifiable Tablet
|
43624
|
+
],
|
43625
|
+
[[TYPE2, TABLET]],
|
43626
|
+
[
|
43627
|
+
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
|
43628
|
+
// Unidentifiable Mobile
|
43629
|
+
],
|
43630
|
+
[[TYPE2, MOBILE]],
|
43631
|
+
[
|
43632
|
+
/(android[-\w\. ]{0,9});.+buil/i
|
43633
|
+
// Generic Android Device
|
43634
|
+
],
|
43635
|
+
[MODEL, [VENDOR, "Generic"]]
|
43636
|
+
],
|
43637
|
+
engine: [
|
43638
|
+
[
|
43639
|
+
/windows.+ edge\/([\w\.]+)/i
|
43640
|
+
// EdgeHTML
|
43641
|
+
],
|
43642
|
+
[VERSION, [NAME, EDGE + "HTML"]],
|
43643
|
+
[
|
43644
|
+
/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
|
43645
|
+
// Blink
|
43646
|
+
],
|
43647
|
+
[VERSION, [NAME, "Blink"]],
|
43648
|
+
[
|
43649
|
+
/(presto)\/([\w\.]+)/i,
|
43650
|
+
// Presto
|
43651
|
+
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,
|
43652
|
+
// WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna
|
43653
|
+
/ekioh(flow)\/([\w\.]+)/i,
|
43654
|
+
// Flow
|
43655
|
+
/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,
|
43656
|
+
// KHTML/Tasman/Links
|
43657
|
+
/(icab)[\/ ]([23]\.[\d\.]+)/i,
|
43658
|
+
// iCab
|
43659
|
+
/\b(libweb)/i
|
43660
|
+
],
|
43661
|
+
[NAME, VERSION],
|
43662
|
+
[
|
43663
|
+
/rv\:([\w\.]{1,9})\b.+(gecko)/i
|
43664
|
+
// Gecko
|
43665
|
+
],
|
43666
|
+
[VERSION, NAME]
|
43667
|
+
],
|
43668
|
+
os: [
|
43669
|
+
[
|
43670
|
+
// Windows
|
43671
|
+
/microsoft (windows) (vista|xp)/i
|
43672
|
+
// Windows (iTunes)
|
43673
|
+
],
|
43674
|
+
[NAME, VERSION],
|
43675
|
+
[
|
43676
|
+
/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i
|
43677
|
+
// Windows Phone
|
43678
|
+
],
|
43679
|
+
[NAME, [VERSION, strMapper, windowsVersionMap]],
|
43680
|
+
[
|
43681
|
+
/windows nt 6\.2; (arm)/i,
|
43682
|
+
// Windows RT
|
43683
|
+
/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
|
43684
|
+
/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
|
43685
|
+
],
|
43686
|
+
[[VERSION, strMapper, windowsVersionMap], [NAME, "Windows"]],
|
43687
|
+
[
|
43688
|
+
// iOS/macOS
|
43689
|
+
/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,
|
43690
|
+
// iOS
|
43691
|
+
/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
|
43692
|
+
/cfnetwork\/.+darwin/i
|
43693
|
+
],
|
43694
|
+
[[VERSION, /_/g, "."], [NAME, "iOS"]],
|
43695
|
+
[
|
43696
|
+
/(mac os x) ?([\w\. ]*)/i,
|
43697
|
+
/(macintosh|mac_powerpc\b)(?!.+haiku)/i
|
43698
|
+
// Mac OS
|
43699
|
+
],
|
43700
|
+
[[NAME, MAC_OS], [VERSION, /_/g, "."]],
|
43701
|
+
[
|
43702
|
+
// Mobile OSes
|
43703
|
+
/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i
|
43704
|
+
// Android-x86/HarmonyOS
|
43705
|
+
],
|
43706
|
+
[VERSION, NAME],
|
43707
|
+
[
|
43708
|
+
// Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
|
43709
|
+
/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
|
43710
|
+
/(blackberry)\w*\/([\w\.]*)/i,
|
43711
|
+
// Blackberry
|
43712
|
+
/(tizen|kaios)[\/ ]([\w\.]+)/i,
|
43713
|
+
// Tizen/KaiOS
|
43714
|
+
/\((series40);/i
|
43715
|
+
// Series 40
|
43716
|
+
],
|
43717
|
+
[NAME, VERSION],
|
43718
|
+
[
|
43719
|
+
/\(bb(10);/i
|
43720
|
+
// BlackBerry 10
|
43721
|
+
],
|
43722
|
+
[VERSION, [NAME, BLACKBERRY]],
|
43723
|
+
[
|
43724
|
+
/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i
|
43725
|
+
// Symbian
|
43726
|
+
],
|
43727
|
+
[VERSION, [NAME, "Symbian"]],
|
43728
|
+
[
|
43729
|
+
/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i
|
43730
|
+
// Firefox OS
|
43731
|
+
],
|
43732
|
+
[VERSION, [NAME, FIREFOX + " OS"]],
|
43733
|
+
[
|
43734
|
+
/web0s;.+rt(tv)/i,
|
43735
|
+
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i
|
43736
|
+
// WebOS
|
43737
|
+
],
|
43738
|
+
[VERSION, [NAME, "webOS"]],
|
43739
|
+
[
|
43740
|
+
/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i
|
43741
|
+
// watchOS
|
43742
|
+
],
|
43743
|
+
[VERSION, [NAME, "watchOS"]],
|
43744
|
+
[
|
43745
|
+
// Google Chromecast
|
43746
|
+
/crkey\/([\d\.]+)/i
|
43747
|
+
// Google Chromecast
|
43748
|
+
],
|
43749
|
+
[VERSION, [NAME, CHROME + "cast"]],
|
43750
|
+
[
|
43751
|
+
/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i
|
43752
|
+
// Chromium OS
|
43753
|
+
],
|
43754
|
+
[[NAME, CHROMIUM_OS], VERSION],
|
43755
|
+
[
|
43756
|
+
// Smart TVs
|
43757
|
+
/panasonic;(viera)/i,
|
43758
|
+
// Panasonic Viera
|
43759
|
+
/(netrange)mmh/i,
|
43760
|
+
// Netrange
|
43761
|
+
/(nettv)\/(\d+\.[\w\.]+)/i,
|
43762
|
+
// NetTV
|
43763
|
+
// Console
|
43764
|
+
/(nintendo|playstation) ([wids345portablevuch]+)/i,
|
43765
|
+
// Nintendo/Playstation
|
43766
|
+
/(xbox); +xbox ([^\);]+)/i,
|
43767
|
+
// Microsoft Xbox (360, One, X, S, Series X, Series S)
|
43768
|
+
// Other
|
43769
|
+
/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,
|
43770
|
+
// Joli/Palm
|
43771
|
+
/(mint)[\/\(\) ]?(\w*)/i,
|
43772
|
+
// Mint
|
43773
|
+
/(mageia|vectorlinux)[; ]/i,
|
43774
|
+
// Mageia/VectorLinux
|
43775
|
+
/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
|
43776
|
+
// Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
|
43777
|
+
/(hurd|linux) ?([\w\.]*)/i,
|
43778
|
+
// Hurd/Linux
|
43779
|
+
/(gnu) ?([\w\.]*)/i,
|
43780
|
+
// GNU
|
43781
|
+
/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,
|
43782
|
+
// FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
|
43783
|
+
/(haiku) (\w+)/i
|
43784
|
+
// Haiku
|
43785
|
+
],
|
43786
|
+
[NAME, VERSION],
|
43787
|
+
[
|
43788
|
+
/(sunos) ?([\w\.\d]*)/i
|
43789
|
+
// Solaris
|
43790
|
+
],
|
43791
|
+
[[NAME, "Solaris"], VERSION],
|
43792
|
+
[
|
43793
|
+
/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,
|
43794
|
+
// Solaris
|
43795
|
+
/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,
|
43796
|
+
// AIX
|
43797
|
+
/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,
|
43798
|
+
// BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS
|
43799
|
+
/(unix) ?([\w\.]*)/i
|
43800
|
+
// UNIX
|
43801
|
+
],
|
43802
|
+
[NAME, VERSION]
|
43803
|
+
]
|
43804
|
+
};
|
43805
|
+
var UAParser2 = function(ua, extensions) {
|
43806
|
+
if (typeof ua === OBJ_TYPE) {
|
43807
|
+
extensions = ua;
|
43808
|
+
ua = undefined2;
|
43809
|
+
}
|
43810
|
+
if (!(this instanceof UAParser2)) {
|
43811
|
+
return new UAParser2(ua, extensions).getResult();
|
43812
|
+
}
|
43813
|
+
var _navigator = typeof window2 !== UNDEF_TYPE && window2.navigator ? window2.navigator : undefined2;
|
43814
|
+
var _ua = ua || (_navigator && _navigator.userAgent ? _navigator.userAgent : EMPTY);
|
43815
|
+
var _uach = _navigator && _navigator.userAgentData ? _navigator.userAgentData : undefined2;
|
43816
|
+
var _rgxmap = extensions ? extend(regexes, extensions) : regexes;
|
43817
|
+
var _isSelfNav = _navigator && _navigator.userAgent == _ua;
|
43818
|
+
this.getBrowser = function() {
|
43819
|
+
var _browser = {};
|
43820
|
+
_browser[NAME] = undefined2;
|
43821
|
+
_browser[VERSION] = undefined2;
|
43822
|
+
rgxMapper.call(_browser, _ua, _rgxmap.browser);
|
43823
|
+
_browser[MAJOR] = majorize(_browser[VERSION]);
|
43824
|
+
if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {
|
43825
|
+
_browser[NAME] = "Brave";
|
43826
|
+
}
|
43827
|
+
return _browser;
|
43828
|
+
};
|
43829
|
+
this.getCPU = function() {
|
43830
|
+
var _cpu = {};
|
43831
|
+
_cpu[ARCHITECTURE] = undefined2;
|
43832
|
+
rgxMapper.call(_cpu, _ua, _rgxmap.cpu);
|
43833
|
+
return _cpu;
|
43834
|
+
};
|
43835
|
+
this.getDevice = function() {
|
43836
|
+
var _device = {};
|
43837
|
+
_device[VENDOR] = undefined2;
|
43838
|
+
_device[MODEL] = undefined2;
|
43839
|
+
_device[TYPE2] = undefined2;
|
43840
|
+
rgxMapper.call(_device, _ua, _rgxmap.device);
|
43841
|
+
if (_isSelfNav && !_device[TYPE2] && _uach && _uach.mobile) {
|
43842
|
+
_device[TYPE2] = MOBILE;
|
43843
|
+
}
|
43844
|
+
if (_isSelfNav && _device[MODEL] == "Macintosh" && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {
|
43845
|
+
_device[MODEL] = "iPad";
|
43846
|
+
_device[TYPE2] = TABLET;
|
43847
|
+
}
|
43848
|
+
return _device;
|
43849
|
+
};
|
43850
|
+
this.getEngine = function() {
|
43851
|
+
var _engine = {};
|
43852
|
+
_engine[NAME] = undefined2;
|
43853
|
+
_engine[VERSION] = undefined2;
|
43854
|
+
rgxMapper.call(_engine, _ua, _rgxmap.engine);
|
43855
|
+
return _engine;
|
43856
|
+
};
|
43857
|
+
this.getOS = function() {
|
43858
|
+
var _os = {};
|
43859
|
+
_os[NAME] = undefined2;
|
43860
|
+
_os[VERSION] = undefined2;
|
43861
|
+
rgxMapper.call(_os, _ua, _rgxmap.os);
|
43862
|
+
if (_isSelfNav && !_os[NAME] && _uach && _uach.platform != "Unknown") {
|
43863
|
+
_os[NAME] = _uach.platform.replace(/chrome os/i, CHROMIUM_OS).replace(/macos/i, MAC_OS);
|
43864
|
+
}
|
43865
|
+
return _os;
|
43866
|
+
};
|
43867
|
+
this.getResult = function() {
|
43868
|
+
return {
|
43869
|
+
ua: this.getUA(),
|
43870
|
+
browser: this.getBrowser(),
|
43871
|
+
engine: this.getEngine(),
|
43872
|
+
os: this.getOS(),
|
43873
|
+
device: this.getDevice(),
|
43874
|
+
cpu: this.getCPU()
|
43875
|
+
};
|
43876
|
+
};
|
43877
|
+
this.getUA = function() {
|
43878
|
+
return _ua;
|
43879
|
+
};
|
43880
|
+
this.setUA = function(ua2) {
|
43881
|
+
_ua = typeof ua2 === STR_TYPE && ua2.length > UA_MAX_LENGTH ? trim(ua2, UA_MAX_LENGTH) : ua2;
|
43882
|
+
return this;
|
43883
|
+
};
|
43884
|
+
this.setUA(_ua);
|
43885
|
+
return this;
|
43886
|
+
};
|
43887
|
+
UAParser2.VERSION = LIBVERSION;
|
43888
|
+
UAParser2.BROWSER = enumerize([NAME, VERSION, MAJOR]);
|
43889
|
+
UAParser2.CPU = enumerize([ARCHITECTURE]);
|
43890
|
+
UAParser2.DEVICE = enumerize([MODEL, VENDOR, TYPE2, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);
|
43891
|
+
UAParser2.ENGINE = UAParser2.OS = enumerize([NAME, VERSION]);
|
43892
|
+
if (typeof exports !== UNDEF_TYPE) {
|
43893
|
+
if (typeof module2 !== UNDEF_TYPE && module2.exports) {
|
43894
|
+
exports = module2.exports = UAParser2;
|
43895
|
+
}
|
43896
|
+
exports.UAParser = UAParser2;
|
43897
|
+
} else {
|
43898
|
+
if (typeof define === FUNC_TYPE && define.amd) {
|
43899
|
+
define(function() {
|
43900
|
+
return UAParser2;
|
43901
|
+
});
|
43902
|
+
} else if (typeof window2 !== UNDEF_TYPE) {
|
43903
|
+
window2.UAParser = UAParser2;
|
43904
|
+
}
|
43905
|
+
}
|
43906
|
+
var $ = typeof window2 !== UNDEF_TYPE && (window2.jQuery || window2.Zepto);
|
43907
|
+
if ($ && !$.ua) {
|
43908
|
+
var parser = new UAParser2();
|
43909
|
+
$.ua = parser.getResult();
|
43910
|
+
$.ua.get = function() {
|
43911
|
+
return parser.getUA();
|
43912
|
+
};
|
43913
|
+
$.ua.set = function(ua) {
|
43914
|
+
parser.setUA(ua);
|
43915
|
+
var result = parser.getResult();
|
43916
|
+
for (var prop in result) {
|
43917
|
+
$.ua[prop] = result[prop];
|
43918
|
+
}
|
43919
|
+
};
|
43920
|
+
}
|
43921
|
+
})(typeof window === "object" ? window : exports);
|
43922
|
+
}
|
43923
|
+
});
|
43924
|
+
|
42591
43925
|
// ../../node_modules/use-debounce/dist/index.module.js
|
42592
43926
|
var index_module_exports = {};
|
42593
43927
|
__export(index_module_exports, {
|
@@ -74391,6 +75725,7 @@ var require_dist2 = __commonJS({
|
|
74391
75725
|
{ width: 768, height: "auto", icon: "Tablet", label: "Medium" },
|
74392
75726
|
{ width: 1280, height: "auto", icon: "Monitor", label: "Large" }
|
74393
75727
|
];
|
75728
|
+
var import_ua_parser_js2 = require_ua_parser();
|
74394
75729
|
var import_jsx_runtime22 = require("react/jsx-runtime");
|
74395
75730
|
var defaultAppState2 = {
|
74396
75731
|
data: { content: [], root: { props: { title: "" } } },
|
@@ -74430,7 +75765,8 @@ var require_dist2 = __commonJS({
|
|
74430
75765
|
setZoomConfig: () => null,
|
74431
75766
|
status: "LOADING",
|
74432
75767
|
setStatus: () => null,
|
74433
|
-
iframe: {}
|
75768
|
+
iframe: {},
|
75769
|
+
safariFallbackMode: false
|
74434
75770
|
};
|
74435
75771
|
var appContext2 = (0, import_react32.createContext)(defaultContext2);
|
74436
75772
|
var AppProvider = ({
|
@@ -74442,10 +75778,34 @@ var require_dist2 = __commonJS({
|
|
74442
75778
|
(0, import_react32.useEffect)(() => {
|
74443
75779
|
setStatus("MOUNTED");
|
74444
75780
|
}, []);
|
75781
|
+
const [safariFallbackMode, setSafariFallbackMode] = (0, import_react32.useState)(false);
|
75782
|
+
(0, import_react32.useEffect)(() => {
|
75783
|
+
var _a3, _b, _c;
|
75784
|
+
const ua = new import_ua_parser_js2.UAParser(navigator.userAgent);
|
75785
|
+
const { browser } = ua.getResult();
|
75786
|
+
if (browser.name === "Safari" && (((_a3 = browser.version) == null ? void 0 : _a3.indexOf("17.2.")) || ((_b = browser.version) == null ? void 0 : _b.indexOf("17.3.")) || ((_c = browser.version) == null ? void 0 : _c.indexOf("17.4.")))) {
|
75787
|
+
if (process.env.NODE_ENV !== "production" && value.iframe.enabled) {
|
75788
|
+
console.warn(
|
75789
|
+
`Detected Safari ${browser.version}, which contains a bug that prevents Puck DropZones from detecting a mouseover event within an iframe. This affects Safari versions 17.2, 17.3 and 17.4.
|
75790
|
+
|
75791
|
+
Running in compatibility mode, which may have some DropZone side-effects. Alternatively, consider disabling iframes: https://puckeditor.com/docs/integrating-puck/viewports#opting-out-of-iframes.
|
75792
|
+
|
75793
|
+
See https://github.com/measuredco/puck/issues/411 for more information. This message will not show in production.`
|
75794
|
+
);
|
75795
|
+
}
|
75796
|
+
setSafariFallbackMode(true);
|
75797
|
+
}
|
75798
|
+
}, []);
|
74445
75799
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
74446
75800
|
appContext2.Provider,
|
74447
75801
|
{
|
74448
|
-
value: __spreadProps2(__spreadValues2({}, value), {
|
75802
|
+
value: __spreadProps2(__spreadValues2({}, value), {
|
75803
|
+
zoomConfig,
|
75804
|
+
setZoomConfig,
|
75805
|
+
status,
|
75806
|
+
setStatus,
|
75807
|
+
safariFallbackMode
|
75808
|
+
}),
|
74449
75809
|
children
|
74450
75810
|
}
|
74451
75811
|
);
|
@@ -74641,7 +76001,7 @@ var require_dist2 = __commonJS({
|
|
74641
76001
|
var import_react72 = require("react");
|
74642
76002
|
var import_dnd3 = (init_dnd_esm(), __toCommonJS(dnd_esm_exports));
|
74643
76003
|
init_react_import2();
|
74644
|
-
var styles_module_default32 = { "DraggableComponent": "
|
76004
|
+
var styles_module_default32 = { "DraggableComponent": "_DraggableComponent_59z7f_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_59z7f_11", "DraggableComponent-contents": "_DraggableComponent-contents_59z7f_16", "DraggableComponent-overlay": "_DraggableComponent-overlay_59z7f_29", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_59z7f_49", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_59z7f_65", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_59z7f_71", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_59z7f_76", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_59z7f_81", "DraggableComponent-actionsOverlay": "_DraggableComponent-actionsOverlay_59z7f_97", "DraggableComponent-actions": "_DraggableComponent-actions_59z7f_97", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_59z7f_127", "DraggableComponent-action": "_DraggableComponent-action_59z7f_97" };
|
74645
76005
|
init_react_import2();
|
74646
76006
|
init_react_import2();
|
74647
76007
|
var import_react52 = require("react");
|
@@ -74982,7 +76342,7 @@ var require_dist2 = __commonJS({
|
|
74982
76342
|
);
|
74983
76343
|
};
|
74984
76344
|
init_react_import2();
|
74985
|
-
var styles_module_default42 = { "DropZone": "
|
76345
|
+
var styles_module_default42 = { "DropZone": "_DropZone_djoti_1", "DropZone-content": "_DropZone-content_djoti_10", "DropZone--userIsDragging": "_DropZone--userIsDragging_djoti_15", "DropZone--draggingOverArea": "_DropZone--draggingOverArea_djoti_19", "DropZone--draggingNewComponent": "_DropZone--draggingNewComponent_djoti_20", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_djoti_26", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_djoti_27", "DropZone--isDisabled": "_DropZone--isDisabled_djoti_28", "DropZone--isRootZone": "_DropZone--isRootZone_djoti_29", "DropZone--hasChildren": "_DropZone--hasChildren_djoti_30", "DropZone--isDestination": "_DropZone--isDestination_djoti_40", "DropZone-item": "_DropZone-item_djoti_52", "DropZone-hitbox": "_DropZone-hitbox_djoti_56" };
|
74986
76346
|
init_react_import2();
|
74987
76347
|
var import_react82 = require("react");
|
74988
76348
|
var import_use_debounce = (init_index_module(), __toCommonJS(index_module_exports));
|
@@ -75167,7 +76527,11 @@ var require_dist2 = __commonJS({
|
|
75167
76527
|
let isEnabled = userWillDrag;
|
75168
76528
|
if (userIsDragging) {
|
75169
76529
|
if (draggingNewComponent) {
|
75170
|
-
|
76530
|
+
if (appContext22.safariFallbackMode) {
|
76531
|
+
isEnabled = true;
|
76532
|
+
} else {
|
76533
|
+
isEnabled = hoveringOverArea;
|
76534
|
+
}
|
75171
76535
|
} else {
|
75172
76536
|
isEnabled = draggingOverArea && hoveringOverZone;
|
75173
76537
|
}
|
@@ -76933,7 +78297,7 @@ var require_dist2 = __commonJS({
|
|
76933
78297
|
disabled: readOnly,
|
76934
78298
|
onChange: (e2) => {
|
76935
78299
|
if (e2.currentTarget.value === "true" || e2.currentTarget.value === "false") {
|
76936
|
-
onChange(
|
78300
|
+
onChange(JSON.parse(e2.currentTarget.value));
|
76937
78301
|
return;
|
76938
78302
|
}
|
76939
78303
|
onChange(e2.currentTarget.value);
|
@@ -77428,7 +78792,7 @@ var require_dist2 = __commonJS({
|
|
77428
78792
|
var import_react222 = require("react");
|
77429
78793
|
var import_auto_frame_component = __toESM2(require_dist());
|
77430
78794
|
init_react_import2();
|
77431
|
-
var styles_module_default16 = { "PuckPreview": "
|
78795
|
+
var styles_module_default16 = { "PuckPreview": "_PuckPreview_rxwlr_1", "PuckPreview-frame": "_PuckPreview-frame_rxwlr_5" };
|
77432
78796
|
var import_jsx_runtime29 = require("react/jsx-runtime");
|
77433
78797
|
var getClassName21 = get_class_name_factory_default2("PuckPreview", styles_module_default16);
|
77434
78798
|
var Preview = ({ id = "puck-preview" }) => {
|
@@ -78948,6 +80312,7 @@ var defaultViewports = [
|
|
78948
80312
|
];
|
78949
80313
|
|
78950
80314
|
// ../core/components/Puck/context.tsx
|
80315
|
+
var import_ua_parser_js = __toESM(require_ua_parser());
|
78951
80316
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
78952
80317
|
var defaultAppState = {
|
78953
80318
|
data: { content: [], root: { props: { title: "" } } },
|
@@ -78987,7 +80352,8 @@ var defaultContext = {
|
|
78987
80352
|
setZoomConfig: () => null,
|
78988
80353
|
status: "LOADING",
|
78989
80354
|
setStatus: () => null,
|
78990
|
-
iframe: {}
|
80355
|
+
iframe: {},
|
80356
|
+
safariFallbackMode: false
|
78991
80357
|
};
|
78992
80358
|
var appContext = (0, import_react10.createContext)(defaultContext);
|
78993
80359
|
function useAppContext() {
|