File: //home/cga.org.uk/public_html/wp-content/themes/blogzee/inc/customizer/assets/customizer-extends.js
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js":
/*!***********************************************************************!*\
!*** ./node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ HiddenText: () => (/* binding */ HiddenText),
/* harmony export */ LiveRegion: () => (/* binding */ LiveRegion),
/* harmony export */ useAnnouncement: () => (/* binding */ useAnnouncement)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
const hiddenStyles = {
display: 'none'
};
function HiddenText(_ref) {
let {
id,
value
} = _ref;
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
id: id,
style: hiddenStyles
}, value);
}
function LiveRegion(_ref) {
let {
id,
announcement,
ariaLiveType = "assertive"
} = _ref;
// Hide element visually but keep it readable by screen readers
const visuallyHidden = {
position: 'fixed',
width: 1,
height: 1,
margin: -1,
border: 0,
padding: 0,
overflow: 'hidden',
clip: 'rect(0 0 0 0)',
clipPath: 'inset(100%)',
whiteSpace: 'nowrap'
};
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
id: id,
style: visuallyHidden,
role: "status",
"aria-live": ariaLiveType,
"aria-atomic": true
}, announcement);
}
function useAnnouncement() {
const [announcement, setAnnouncement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
const announce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(value => {
if (value != null) {
setAnnouncement(value);
}
}, []);
return {
announce,
announcement
};
}
//# sourceMappingURL=accessibility.esm.js.map
/***/ }),
/***/ "./node_modules/@dnd-kit/core/dist/core.esm.js":
/*!*****************************************************!*\
!*** ./node_modules/@dnd-kit/core/dist/core.esm.js ***!
\*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ AutoScrollActivator: () => (/* binding */ AutoScrollActivator),
/* harmony export */ DndContext: () => (/* binding */ DndContext),
/* harmony export */ DragOverlay: () => (/* binding */ DragOverlay),
/* harmony export */ KeyboardCode: () => (/* binding */ KeyboardCode),
/* harmony export */ KeyboardSensor: () => (/* binding */ KeyboardSensor),
/* harmony export */ MeasuringFrequency: () => (/* binding */ MeasuringFrequency),
/* harmony export */ MeasuringStrategy: () => (/* binding */ MeasuringStrategy),
/* harmony export */ MouseSensor: () => (/* binding */ MouseSensor),
/* harmony export */ PointerSensor: () => (/* binding */ PointerSensor),
/* harmony export */ TouchSensor: () => (/* binding */ TouchSensor),
/* harmony export */ TraversalOrder: () => (/* binding */ TraversalOrder),
/* harmony export */ applyModifiers: () => (/* binding */ applyModifiers),
/* harmony export */ closestCenter: () => (/* binding */ closestCenter),
/* harmony export */ closestCorners: () => (/* binding */ closestCorners),
/* harmony export */ defaultAnnouncements: () => (/* binding */ defaultAnnouncements),
/* harmony export */ defaultCoordinates: () => (/* binding */ defaultCoordinates),
/* harmony export */ defaultDropAnimation: () => (/* binding */ defaultDropAnimationConfiguration),
/* harmony export */ defaultDropAnimationSideEffects: () => (/* binding */ defaultDropAnimationSideEffects),
/* harmony export */ defaultScreenReaderInstructions: () => (/* binding */ defaultScreenReaderInstructions),
/* harmony export */ getClientRect: () => (/* binding */ getClientRect),
/* harmony export */ getFirstCollision: () => (/* binding */ getFirstCollision),
/* harmony export */ getScrollableAncestors: () => (/* binding */ getScrollableAncestors),
/* harmony export */ pointerWithin: () => (/* binding */ pointerWithin),
/* harmony export */ rectIntersection: () => (/* binding */ rectIntersection),
/* harmony export */ useDndContext: () => (/* binding */ useDndContext),
/* harmony export */ useDndMonitor: () => (/* binding */ useDndMonitor),
/* harmony export */ useDraggable: () => (/* binding */ useDraggable),
/* harmony export */ useDroppable: () => (/* binding */ useDroppable),
/* harmony export */ useSensor: () => (/* binding */ useSensor),
/* harmony export */ useSensors: () => (/* binding */ useSensors)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @dnd-kit/utilities */ "./node_modules/@dnd-kit/utilities/dist/utilities.esm.js");
/* harmony import */ var _dnd_kit_accessibility__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dnd-kit/accessibility */ "./node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js");
const DndMonitorContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
function useDndMonitor(listener) {
const registerListener = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(DndMonitorContext);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (!registerListener) {
throw new Error('useDndMonitor must be used within a children of <DndContext>');
}
const unsubscribe = registerListener(listener);
return unsubscribe;
}, [listener, registerListener]);
}
function useDndMonitorProvider() {
const [listeners] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(() => new Set());
const registerListener = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(listener => {
listeners.add(listener);
return () => listeners.delete(listener);
}, [listeners]);
const dispatch = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(_ref => {
let {
type,
event
} = _ref;
listeners.forEach(listener => {
var _listener$type;
return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);
});
}, [listeners]);
return [dispatch, registerListener];
}
const defaultScreenReaderInstructions = {
draggable: "\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "
};
const defaultAnnouncements = {
onDragStart(_ref) {
let {
active
} = _ref;
return "Picked up draggable item " + active.id + ".";
},
onDragOver(_ref2) {
let {
active,
over
} = _ref2;
if (over) {
return "Draggable item " + active.id + " was moved over droppable area " + over.id + ".";
}
return "Draggable item " + active.id + " is no longer over a droppable area.";
},
onDragEnd(_ref3) {
let {
active,
over
} = _ref3;
if (over) {
return "Draggable item " + active.id + " was dropped over droppable area " + over.id;
}
return "Draggable item " + active.id + " was dropped.";
},
onDragCancel(_ref4) {
let {
active
} = _ref4;
return "Dragging was cancelled. Draggable item " + active.id + " was dropped.";
}
};
function Accessibility(_ref) {
let {
announcements = defaultAnnouncements,
container,
hiddenTextDescribedById,
screenReaderInstructions = defaultScreenReaderInstructions
} = _ref;
const {
announce,
announcement
} = (0,_dnd_kit_accessibility__WEBPACK_IMPORTED_MODULE_3__.useAnnouncement)();
const liveRegionId = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useUniqueId)("DndLiveRegion");
const [mounted, setMounted] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
setMounted(true);
}, []);
useDndMonitor((0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
onDragStart(_ref2) {
let {
active
} = _ref2;
announce(announcements.onDragStart({
active
}));
},
onDragMove(_ref3) {
let {
active,
over
} = _ref3;
if (announcements.onDragMove) {
announce(announcements.onDragMove({
active,
over
}));
}
},
onDragOver(_ref4) {
let {
active,
over
} = _ref4;
announce(announcements.onDragOver({
active,
over
}));
},
onDragEnd(_ref5) {
let {
active,
over
} = _ref5;
announce(announcements.onDragEnd({
active,
over
}));
},
onDragCancel(_ref6) {
let {
active,
over
} = _ref6;
announce(announcements.onDragCancel({
active,
over
}));
}
}), [announce, announcements]));
if (!mounted) {
return null;
}
const markup = react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_dnd_kit_accessibility__WEBPACK_IMPORTED_MODULE_3__.HiddenText, {
id: hiddenTextDescribedById,
value: screenReaderInstructions.draggable
}), react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_dnd_kit_accessibility__WEBPACK_IMPORTED_MODULE_3__.LiveRegion, {
id: liveRegionId,
announcement: announcement
}));
return container ? (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(markup, container) : markup;
}
var Action;
(function (Action) {
Action["DragStart"] = "dragStart";
Action["DragMove"] = "dragMove";
Action["DragEnd"] = "dragEnd";
Action["DragCancel"] = "dragCancel";
Action["DragOver"] = "dragOver";
Action["RegisterDroppable"] = "registerDroppable";
Action["SetDroppableDisabled"] = "setDroppableDisabled";
Action["UnregisterDroppable"] = "unregisterDroppable";
})(Action || (Action = {}));
function noop() {}
function useSensor(sensor, options) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
sensor,
options: options != null ? options : {}
}), // eslint-disable-next-line react-hooks/exhaustive-deps
[sensor, options]);
}
function useSensors() {
for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {
sensors[_key] = arguments[_key];
}
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps
[...sensors]);
}
const defaultCoordinates = /*#__PURE__*/Object.freeze({
x: 0,
y: 0
});
/**
* Returns the distance between two points
*/
function distanceBetween(p1, p2) {
return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
}
function getRelativeTransformOrigin(event, rect) {
const eventCoordinates = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getEventCoordinates)(event);
if (!eventCoordinates) {
return '0 0';
}
const transformOrigin = {
x: (eventCoordinates.x - rect.left) / rect.width * 100,
y: (eventCoordinates.y - rect.top) / rect.height * 100
};
return transformOrigin.x + "% " + transformOrigin.y + "%";
}
/**
* Sort collisions from smallest to greatest value
*/
function sortCollisionsAsc(_ref, _ref2) {
let {
data: {
value: a
}
} = _ref;
let {
data: {
value: b
}
} = _ref2;
return a - b;
}
/**
* Sort collisions from greatest to smallest value
*/
function sortCollisionsDesc(_ref3, _ref4) {
let {
data: {
value: a
}
} = _ref3;
let {
data: {
value: b
}
} = _ref4;
return b - a;
}
/**
* Returns the coordinates of the corners of a given rectangle:
* [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]
*/
function cornersOfRectangle(_ref5) {
let {
left,
top,
height,
width
} = _ref5;
return [{
x: left,
y: top
}, {
x: left + width,
y: top
}, {
x: left,
y: top + height
}, {
x: left + width,
y: top + height
}];
}
function getFirstCollision(collisions, property) {
if (!collisions || collisions.length === 0) {
return null;
}
const [firstCollision] = collisions;
return property ? firstCollision[property] : firstCollision;
}
/**
* Returns the coordinates of the center of a given ClientRect
*/
function centerOfRectangle(rect, left, top) {
if (left === void 0) {
left = rect.left;
}
if (top === void 0) {
top = rect.top;
}
return {
x: left + rect.width * 0.5,
y: top + rect.height * 0.5
};
}
/**
* Returns the closest rectangles from an array of rectangles to the center of a given
* rectangle.
*/
const closestCenter = _ref => {
let {
collisionRect,
droppableRects,
droppableContainers
} = _ref;
const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);
const collisions = [];
for (const droppableContainer of droppableContainers) {
const {
id
} = droppableContainer;
const rect = droppableRects.get(id);
if (rect) {
const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);
collisions.push({
id,
data: {
droppableContainer,
value: distBetween
}
});
}
}
return collisions.sort(sortCollisionsAsc);
};
/**
* Returns the closest rectangles from an array of rectangles to the corners of
* another rectangle.
*/
const closestCorners = _ref => {
let {
collisionRect,
droppableRects,
droppableContainers
} = _ref;
const corners = cornersOfRectangle(collisionRect);
const collisions = [];
for (const droppableContainer of droppableContainers) {
const {
id
} = droppableContainer;
const rect = droppableRects.get(id);
if (rect) {
const rectCorners = cornersOfRectangle(rect);
const distances = corners.reduce((accumulator, corner, index) => {
return accumulator + distanceBetween(rectCorners[index], corner);
}, 0);
const effectiveDistance = Number((distances / 4).toFixed(4));
collisions.push({
id,
data: {
droppableContainer,
value: effectiveDistance
}
});
}
}
return collisions.sort(sortCollisionsAsc);
};
/**
* Returns the intersecting rectangle area between two rectangles
*/
function getIntersectionRatio(entry, target) {
const top = Math.max(target.top, entry.top);
const left = Math.max(target.left, entry.left);
const right = Math.min(target.left + target.width, entry.left + entry.width);
const bottom = Math.min(target.top + target.height, entry.top + entry.height);
const width = right - left;
const height = bottom - top;
if (left < right && top < bottom) {
const targetArea = target.width * target.height;
const entryArea = entry.width * entry.height;
const intersectionArea = width * height;
const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);
return Number(intersectionRatio.toFixed(4));
} // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)
return 0;
}
/**
* Returns the rectangles that has the greatest intersection area with a given
* rectangle in an array of rectangles.
*/
const rectIntersection = _ref => {
let {
collisionRect,
droppableRects,
droppableContainers
} = _ref;
const collisions = [];
for (const droppableContainer of droppableContainers) {
const {
id
} = droppableContainer;
const rect = droppableRects.get(id);
if (rect) {
const intersectionRatio = getIntersectionRatio(rect, collisionRect);
if (intersectionRatio > 0) {
collisions.push({
id,
data: {
droppableContainer,
value: intersectionRatio
}
});
}
}
}
return collisions.sort(sortCollisionsDesc);
};
/**
* Check if a given point is contained within a bounding rectangle
*/
function isPointWithinRect(point, rect) {
const {
top,
left,
bottom,
right
} = rect;
return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;
}
/**
* Returns the rectangles that the pointer is hovering over
*/
const pointerWithin = _ref => {
let {
droppableContainers,
droppableRects,
pointerCoordinates
} = _ref;
if (!pointerCoordinates) {
return [];
}
const collisions = [];
for (const droppableContainer of droppableContainers) {
const {
id
} = droppableContainer;
const rect = droppableRects.get(id);
if (rect && isPointWithinRect(pointerCoordinates, rect)) {
/* There may be more than a single rectangle intersecting
* with the pointer coordinates. In order to sort the
* colliding rectangles, we measure the distance between
* the pointer and the corners of the intersecting rectangle
*/
const corners = cornersOfRectangle(rect);
const distances = corners.reduce((accumulator, corner) => {
return accumulator + distanceBetween(pointerCoordinates, corner);
}, 0);
const effectiveDistance = Number((distances / 4).toFixed(4));
collisions.push({
id,
data: {
droppableContainer,
value: effectiveDistance
}
});
}
}
return collisions.sort(sortCollisionsAsc);
};
function adjustScale(transform, rect1, rect2) {
return { ...transform,
scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,
scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1
};
}
function getRectDelta(rect1, rect2) {
return rect1 && rect2 ? {
x: rect1.left - rect2.left,
y: rect1.top - rect2.top
} : defaultCoordinates;
}
function createRectAdjustmentFn(modifier) {
return function adjustClientRect(rect) {
for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
adjustments[_key - 1] = arguments[_key];
}
return adjustments.reduce((acc, adjustment) => ({ ...acc,
top: acc.top + modifier * adjustment.y,
bottom: acc.bottom + modifier * adjustment.y,
left: acc.left + modifier * adjustment.x,
right: acc.right + modifier * adjustment.x
}), { ...rect
});
};
}
const getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);
function parseTransform(transform) {
if (transform.startsWith('matrix3d(')) {
const transformArray = transform.slice(9, -1).split(/, /);
return {
x: +transformArray[12],
y: +transformArray[13],
scaleX: +transformArray[0],
scaleY: +transformArray[5]
};
} else if (transform.startsWith('matrix(')) {
const transformArray = transform.slice(7, -1).split(/, /);
return {
x: +transformArray[4],
y: +transformArray[5],
scaleX: +transformArray[0],
scaleY: +transformArray[3]
};
}
return null;
}
function inverseTransform(rect, transform, transformOrigin) {
const parsedTransform = parseTransform(transform);
if (!parsedTransform) {
return rect;
}
const {
scaleX,
scaleY,
x: translateX,
y: translateY
} = parsedTransform;
const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);
const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));
const w = scaleX ? rect.width / scaleX : rect.width;
const h = scaleY ? rect.height / scaleY : rect.height;
return {
width: w,
height: h,
top: y,
right: x + w,
bottom: y + h,
left: x
};
}
const defaultOptions = {
ignoreTransform: false
};
/**
* Returns the bounding client rect of an element relative to the viewport.
*/
function getClientRect(element, options) {
if (options === void 0) {
options = defaultOptions;
}
let rect = element.getBoundingClientRect();
if (options.ignoreTransform) {
const {
transform,
transformOrigin
} = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(element).getComputedStyle(element);
if (transform) {
rect = inverseTransform(rect, transform, transformOrigin);
}
}
const {
top,
left,
width,
height,
bottom,
right
} = rect;
return {
top,
left,
width,
height,
bottom,
right
};
}
/**
* Returns the bounding client rect of an element relative to the viewport.
*
* @remarks
* The ClientRect returned by this method does not take into account transforms
* applied to the element it measures.
*
*/
function getTransformAgnosticClientRect(element) {
return getClientRect(element, {
ignoreTransform: true
});
}
function getWindowClientRect(element) {
const width = element.innerWidth;
const height = element.innerHeight;
return {
top: 0,
left: 0,
right: width,
bottom: height,
width,
height
};
}
function isFixed(node, computedStyle) {
if (computedStyle === void 0) {
computedStyle = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(node).getComputedStyle(node);
}
return computedStyle.position === 'fixed';
}
function isScrollable(element, computedStyle) {
if (computedStyle === void 0) {
computedStyle = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(element).getComputedStyle(element);
}
const overflowRegex = /(auto|scroll|overlay)/;
const properties = ['overflow', 'overflowX', 'overflowY'];
return properties.some(property => {
const value = computedStyle[property];
return typeof value === 'string' ? overflowRegex.test(value) : false;
});
}
function getScrollableAncestors(element, limit) {
const scrollParents = [];
function findScrollableAncestors(node) {
if (limit != null && scrollParents.length >= limit) {
return scrollParents;
}
if (!node) {
return scrollParents;
}
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isDocument)(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {
scrollParents.push(node.scrollingElement);
return scrollParents;
}
if (!(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(node) || (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isSVGElement)(node)) {
return scrollParents;
}
if (scrollParents.includes(node)) {
return scrollParents;
}
const computedStyle = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(element).getComputedStyle(node);
if (node !== element) {
if (isScrollable(node, computedStyle)) {
scrollParents.push(node);
}
}
if (isFixed(node, computedStyle)) {
return scrollParents;
}
return findScrollableAncestors(node.parentNode);
}
if (!element) {
return scrollParents;
}
return findScrollableAncestors(element);
}
function getFirstScrollableAncestor(node) {
const [firstScrollableAncestor] = getScrollableAncestors(node, 1);
return firstScrollableAncestor != null ? firstScrollableAncestor : null;
}
function getScrollableElement(element) {
if (!_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.canUseDOM || !element) {
return null;
}
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isWindow)(element)) {
return element;
}
if (!(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isNode)(element)) {
return null;
}
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isDocument)(element) || element === (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getOwnerDocument)(element).scrollingElement) {
return window;
}
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(element)) {
return element;
}
return null;
}
function getScrollXCoordinate(element) {
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isWindow)(element)) {
return element.scrollX;
}
return element.scrollLeft;
}
function getScrollYCoordinate(element) {
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isWindow)(element)) {
return element.scrollY;
}
return element.scrollTop;
}
function getScrollCoordinates(element) {
return {
x: getScrollXCoordinate(element),
y: getScrollYCoordinate(element)
};
}
var Direction;
(function (Direction) {
Direction[Direction["Forward"] = 1] = "Forward";
Direction[Direction["Backward"] = -1] = "Backward";
})(Direction || (Direction = {}));
function isDocumentScrollingElement(element) {
if (!_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.canUseDOM || !element) {
return false;
}
return element === document.scrollingElement;
}
function getScrollPosition(scrollingContainer) {
const minScroll = {
x: 0,
y: 0
};
const dimensions = isDocumentScrollingElement(scrollingContainer) ? {
height: window.innerHeight,
width: window.innerWidth
} : {
height: scrollingContainer.clientHeight,
width: scrollingContainer.clientWidth
};
const maxScroll = {
x: scrollingContainer.scrollWidth - dimensions.width,
y: scrollingContainer.scrollHeight - dimensions.height
};
const isTop = scrollingContainer.scrollTop <= minScroll.y;
const isLeft = scrollingContainer.scrollLeft <= minScroll.x;
const isBottom = scrollingContainer.scrollTop >= maxScroll.y;
const isRight = scrollingContainer.scrollLeft >= maxScroll.x;
return {
isTop,
isLeft,
isBottom,
isRight,
maxScroll,
minScroll
};
}
const defaultThreshold = {
x: 0.2,
y: 0.2
};
function getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {
let {
top,
left,
right,
bottom
} = _ref;
if (acceleration === void 0) {
acceleration = 10;
}
if (thresholdPercentage === void 0) {
thresholdPercentage = defaultThreshold;
}
const {
isTop,
isBottom,
isLeft,
isRight
} = getScrollPosition(scrollContainer);
const direction = {
x: 0,
y: 0
};
const speed = {
x: 0,
y: 0
};
const threshold = {
height: scrollContainerRect.height * thresholdPercentage.y,
width: scrollContainerRect.width * thresholdPercentage.x
};
if (!isTop && top <= scrollContainerRect.top + threshold.height) {
// Scroll Up
direction.y = Direction.Backward;
speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);
} else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {
// Scroll Down
direction.y = Direction.Forward;
speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);
}
if (!isRight && right >= scrollContainerRect.right - threshold.width) {
// Scroll Right
direction.x = Direction.Forward;
speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);
} else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {
// Scroll Left
direction.x = Direction.Backward;
speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);
}
return {
direction,
speed
};
}
function getScrollElementRect(element) {
if (element === document.scrollingElement) {
const {
innerWidth,
innerHeight
} = window;
return {
top: 0,
left: 0,
right: innerWidth,
bottom: innerHeight,
width: innerWidth,
height: innerHeight
};
}
const {
top,
left,
right,
bottom
} = element.getBoundingClientRect();
return {
top,
left,
right,
bottom,
width: element.clientWidth,
height: element.clientHeight
};
}
function getScrollOffsets(scrollableAncestors) {
return scrollableAncestors.reduce((acc, node) => {
return (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.add)(acc, getScrollCoordinates(node));
}, defaultCoordinates);
}
function getScrollXOffset(scrollableAncestors) {
return scrollableAncestors.reduce((acc, node) => {
return acc + getScrollXCoordinate(node);
}, 0);
}
function getScrollYOffset(scrollableAncestors) {
return scrollableAncestors.reduce((acc, node) => {
return acc + getScrollYCoordinate(node);
}, 0);
}
function scrollIntoViewIfNeeded(element, measure) {
if (measure === void 0) {
measure = getClientRect;
}
if (!element) {
return;
}
const {
top,
left,
bottom,
right
} = measure(element);
const firstScrollableAncestor = getFirstScrollableAncestor(element);
if (!firstScrollableAncestor) {
return;
}
if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {
element.scrollIntoView({
block: 'center',
inline: 'center'
});
}
}
const properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];
class Rect {
constructor(rect, element) {
this.rect = void 0;
this.width = void 0;
this.height = void 0;
this.top = void 0;
this.bottom = void 0;
this.right = void 0;
this.left = void 0;
const scrollableAncestors = getScrollableAncestors(element);
const scrollOffsets = getScrollOffsets(scrollableAncestors);
this.rect = { ...rect
};
this.width = rect.width;
this.height = rect.height;
for (const [axis, keys, getScrollOffset] of properties) {
for (const key of keys) {
Object.defineProperty(this, key, {
get: () => {
const currentOffsets = getScrollOffset(scrollableAncestors);
const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;
return this.rect[key] + scrollOffsetsDeltla;
},
enumerable: true
});
}
}
Object.defineProperty(this, 'rect', {
enumerable: false
});
}
}
class Listeners {
constructor(target) {
this.target = void 0;
this.listeners = [];
this.removeAll = () => {
this.listeners.forEach(listener => {
var _this$target;
return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);
});
};
this.target = target;
}
add(eventName, handler, options) {
var _this$target2;
(_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);
this.listeners.push([eventName, handler, options]);
}
}
function getEventListenerTarget(target) {
// If the `event.target` element is removed from the document events will still be targeted
// at it, and hence won't always bubble up to the window or document anymore.
// If there is any risk of an element being removed while it is being dragged,
// the best practice is to attach the event listeners directly to the target.
// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget
const {
EventTarget
} = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(target);
return target instanceof EventTarget ? target : (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getOwnerDocument)(target);
}
function hasExceededDistance(delta, measurement) {
const dx = Math.abs(delta.x);
const dy = Math.abs(delta.y);
if (typeof measurement === 'number') {
return Math.sqrt(dx ** 2 + dy ** 2) > measurement;
}
if ('x' in measurement && 'y' in measurement) {
return dx > measurement.x && dy > measurement.y;
}
if ('x' in measurement) {
return dx > measurement.x;
}
if ('y' in measurement) {
return dy > measurement.y;
}
return false;
}
var EventName;
(function (EventName) {
EventName["Click"] = "click";
EventName["DragStart"] = "dragstart";
EventName["Keydown"] = "keydown";
EventName["ContextMenu"] = "contextmenu";
EventName["Resize"] = "resize";
EventName["SelectionChange"] = "selectionchange";
EventName["VisibilityChange"] = "visibilitychange";
})(EventName || (EventName = {}));
function preventDefault(event) {
event.preventDefault();
}
function stopPropagation(event) {
event.stopPropagation();
}
var KeyboardCode;
(function (KeyboardCode) {
KeyboardCode["Space"] = "Space";
KeyboardCode["Down"] = "ArrowDown";
KeyboardCode["Right"] = "ArrowRight";
KeyboardCode["Left"] = "ArrowLeft";
KeyboardCode["Up"] = "ArrowUp";
KeyboardCode["Esc"] = "Escape";
KeyboardCode["Enter"] = "Enter";
})(KeyboardCode || (KeyboardCode = {}));
const defaultKeyboardCodes = {
start: [KeyboardCode.Space, KeyboardCode.Enter],
cancel: [KeyboardCode.Esc],
end: [KeyboardCode.Space, KeyboardCode.Enter]
};
const defaultKeyboardCoordinateGetter = (event, _ref) => {
let {
currentCoordinates
} = _ref;
switch (event.code) {
case KeyboardCode.Right:
return { ...currentCoordinates,
x: currentCoordinates.x + 25
};
case KeyboardCode.Left:
return { ...currentCoordinates,
x: currentCoordinates.x - 25
};
case KeyboardCode.Down:
return { ...currentCoordinates,
y: currentCoordinates.y + 25
};
case KeyboardCode.Up:
return { ...currentCoordinates,
y: currentCoordinates.y - 25
};
}
return undefined;
};
class KeyboardSensor {
constructor(props) {
this.props = void 0;
this.autoScrollEnabled = false;
this.referenceCoordinates = void 0;
this.listeners = void 0;
this.windowListeners = void 0;
this.props = props;
const {
event: {
target
}
} = props;
this.props = props;
this.listeners = new Listeners((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getOwnerDocument)(target));
this.windowListeners = new Listeners((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(target));
this.handleKeyDown = this.handleKeyDown.bind(this);
this.handleCancel = this.handleCancel.bind(this);
this.attach();
}
attach() {
this.handleStart();
this.windowListeners.add(EventName.Resize, this.handleCancel);
this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);
setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));
}
handleStart() {
const {
activeNode,
onStart
} = this.props;
const node = activeNode.node.current;
if (node) {
scrollIntoViewIfNeeded(node);
}
onStart(defaultCoordinates);
}
handleKeyDown(event) {
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isKeyboardEvent)(event)) {
const {
active,
context,
options
} = this.props;
const {
keyboardCodes = defaultKeyboardCodes,
coordinateGetter = defaultKeyboardCoordinateGetter,
scrollBehavior = 'smooth'
} = options;
const {
code
} = event;
if (keyboardCodes.end.includes(code)) {
this.handleEnd(event);
return;
}
if (keyboardCodes.cancel.includes(code)) {
this.handleCancel(event);
return;
}
const {
collisionRect
} = context.current;
const currentCoordinates = collisionRect ? {
x: collisionRect.left,
y: collisionRect.top
} : defaultCoordinates;
if (!this.referenceCoordinates) {
this.referenceCoordinates = currentCoordinates;
}
const newCoordinates = coordinateGetter(event, {
active,
context: context.current,
currentCoordinates
});
if (newCoordinates) {
const coordinatesDelta = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.subtract)(newCoordinates, currentCoordinates);
const scrollDelta = {
x: 0,
y: 0
};
const {
scrollableAncestors
} = context.current;
for (const scrollContainer of scrollableAncestors) {
const direction = event.code;
const {
isTop,
isRight,
isLeft,
isBottom,
maxScroll,
minScroll
} = getScrollPosition(scrollContainer);
const scrollElementRect = getScrollElementRect(scrollContainer);
const clampedCoordinates = {
x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),
y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))
};
const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;
const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;
if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {
const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;
const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;
if (canScrollToNewCoordinates && !coordinatesDelta.y) {
// We don't need to update coordinates, the scroll adjustment alone will trigger
// logic to auto-detect the new container we are over
scrollContainer.scrollTo({
left: newScrollCoordinates,
behavior: scrollBehavior
});
return;
}
if (canScrollToNewCoordinates) {
scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;
} else {
scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;
}
if (scrollDelta.x) {
scrollContainer.scrollBy({
left: -scrollDelta.x,
behavior: scrollBehavior
});
}
break;
} else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {
const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;
const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;
if (canScrollToNewCoordinates && !coordinatesDelta.x) {
// We don't need to update coordinates, the scroll adjustment alone will trigger
// logic to auto-detect the new container we are over
scrollContainer.scrollTo({
top: newScrollCoordinates,
behavior: scrollBehavior
});
return;
}
if (canScrollToNewCoordinates) {
scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;
} else {
scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;
}
if (scrollDelta.y) {
scrollContainer.scrollBy({
top: -scrollDelta.y,
behavior: scrollBehavior
});
}
break;
}
}
this.handleMove(event, (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.add)((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.subtract)(newCoordinates, this.referenceCoordinates), scrollDelta));
}
}
}
handleMove(event, coordinates) {
const {
onMove
} = this.props;
event.preventDefault();
onMove(coordinates);
}
handleEnd(event) {
const {
onEnd
} = this.props;
event.preventDefault();
this.detach();
onEnd();
}
handleCancel(event) {
const {
onCancel
} = this.props;
event.preventDefault();
this.detach();
onCancel();
}
detach() {
this.listeners.removeAll();
this.windowListeners.removeAll();
}
}
KeyboardSensor.activators = [{
eventName: 'onKeyDown',
handler: (event, _ref, _ref2) => {
let {
keyboardCodes = defaultKeyboardCodes,
onActivation
} = _ref;
let {
active
} = _ref2;
const {
code
} = event.nativeEvent;
if (keyboardCodes.start.includes(code)) {
const activator = active.activatorNode.current;
if (activator && event.target !== activator) {
return false;
}
event.preventDefault();
onActivation == null ? void 0 : onActivation({
event: event.nativeEvent
});
return true;
}
return false;
}
}];
function isDistanceConstraint(constraint) {
return Boolean(constraint && 'distance' in constraint);
}
function isDelayConstraint(constraint) {
return Boolean(constraint && 'delay' in constraint);
}
class AbstractPointerSensor {
constructor(props, events, listenerTarget) {
var _getEventCoordinates;
if (listenerTarget === void 0) {
listenerTarget = getEventListenerTarget(props.event.target);
}
this.props = void 0;
this.events = void 0;
this.autoScrollEnabled = true;
this.document = void 0;
this.activated = false;
this.initialCoordinates = void 0;
this.timeoutId = null;
this.listeners = void 0;
this.documentListeners = void 0;
this.windowListeners = void 0;
this.props = props;
this.events = events;
const {
event
} = props;
const {
target
} = event;
this.props = props;
this.events = events;
this.document = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getOwnerDocument)(target);
this.documentListeners = new Listeners(this.document);
this.listeners = new Listeners(listenerTarget);
this.windowListeners = new Listeners((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(target));
this.initialCoordinates = (_getEventCoordinates = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getEventCoordinates)(event)) != null ? _getEventCoordinates : defaultCoordinates;
this.handleStart = this.handleStart.bind(this);
this.handleMove = this.handleMove.bind(this);
this.handleEnd = this.handleEnd.bind(this);
this.handleCancel = this.handleCancel.bind(this);
this.handleKeydown = this.handleKeydown.bind(this);
this.removeTextSelection = this.removeTextSelection.bind(this);
this.attach();
}
attach() {
const {
events,
props: {
options: {
activationConstraint,
bypassActivationConstraint
}
}
} = this;
this.listeners.add(events.move.name, this.handleMove, {
passive: false
});
this.listeners.add(events.end.name, this.handleEnd);
this.windowListeners.add(EventName.Resize, this.handleCancel);
this.windowListeners.add(EventName.DragStart, preventDefault);
this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);
this.windowListeners.add(EventName.ContextMenu, preventDefault);
this.documentListeners.add(EventName.Keydown, this.handleKeydown);
if (activationConstraint) {
if (bypassActivationConstraint != null && bypassActivationConstraint({
event: this.props.event,
activeNode: this.props.activeNode,
options: this.props.options
})) {
return this.handleStart();
}
if (isDelayConstraint(activationConstraint)) {
this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);
return;
}
if (isDistanceConstraint(activationConstraint)) {
return;
}
}
this.handleStart();
}
detach() {
this.listeners.removeAll();
this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners
// This is necessary because we listen for `click` and `selection` events on the document
setTimeout(this.documentListeners.removeAll, 50);
if (this.timeoutId !== null) {
clearTimeout(this.timeoutId);
this.timeoutId = null;
}
}
handleStart() {
const {
initialCoordinates
} = this;
const {
onStart
} = this.props;
if (initialCoordinates) {
this.activated = true; // Stop propagation of click events once activation constraints are met
this.documentListeners.add(EventName.Click, stopPropagation, {
capture: true
}); // Remove any text selection from the document
this.removeTextSelection(); // Prevent further text selection while dragging
this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);
onStart(initialCoordinates);
}
}
handleMove(event) {
var _getEventCoordinates2;
const {
activated,
initialCoordinates,
props
} = this;
const {
onMove,
options: {
activationConstraint
}
} = props;
if (!initialCoordinates) {
return;
}
const coordinates = (_getEventCoordinates2 = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getEventCoordinates)(event)) != null ? _getEventCoordinates2 : defaultCoordinates;
const delta = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.subtract)(initialCoordinates, coordinates); // Constraint validation
if (!activated && activationConstraint) {
if (isDistanceConstraint(activationConstraint)) {
if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {
return this.handleCancel();
}
if (hasExceededDistance(delta, activationConstraint.distance)) {
return this.handleStart();
}
}
if (isDelayConstraint(activationConstraint)) {
if (hasExceededDistance(delta, activationConstraint.tolerance)) {
return this.handleCancel();
}
}
return;
}
if (event.cancelable) {
event.preventDefault();
}
onMove(coordinates);
}
handleEnd() {
const {
onEnd
} = this.props;
this.detach();
onEnd();
}
handleCancel() {
const {
onCancel
} = this.props;
this.detach();
onCancel();
}
handleKeydown(event) {
if (event.code === KeyboardCode.Esc) {
this.handleCancel();
}
}
removeTextSelection() {
var _this$document$getSel;
(_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();
}
}
const events = {
move: {
name: 'pointermove'
},
end: {
name: 'pointerup'
}
};
class PointerSensor extends AbstractPointerSensor {
constructor(props) {
const {
event
} = props; // Pointer events stop firing if the target is unmounted while dragging
// Therefore we attach listeners to the owner document instead
const listenerTarget = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getOwnerDocument)(event.target);
super(props, events, listenerTarget);
}
}
PointerSensor.activators = [{
eventName: 'onPointerDown',
handler: (_ref, _ref2) => {
let {
nativeEvent: event
} = _ref;
let {
onActivation
} = _ref2;
if (!event.isPrimary || event.button !== 0) {
return false;
}
onActivation == null ? void 0 : onActivation({
event
});
return true;
}
}];
const events$1 = {
move: {
name: 'mousemove'
},
end: {
name: 'mouseup'
}
};
var MouseButton;
(function (MouseButton) {
MouseButton[MouseButton["RightClick"] = 2] = "RightClick";
})(MouseButton || (MouseButton = {}));
class MouseSensor extends AbstractPointerSensor {
constructor(props) {
super(props, events$1, (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getOwnerDocument)(props.event.target));
}
}
MouseSensor.activators = [{
eventName: 'onMouseDown',
handler: (_ref, _ref2) => {
let {
nativeEvent: event
} = _ref;
let {
onActivation
} = _ref2;
if (event.button === MouseButton.RightClick) {
return false;
}
onActivation == null ? void 0 : onActivation({
event
});
return true;
}
}];
const events$2 = {
move: {
name: 'touchmove'
},
end: {
name: 'touchend'
}
};
class TouchSensor extends AbstractPointerSensor {
constructor(props) {
super(props, events$2);
}
static setup() {
// Adding a non-capture and non-passive `touchmove` listener in order
// to force `event.preventDefault()` calls to work in dynamically added
// touchmove event handlers. This is required for iOS Safari.
window.addEventListener(events$2.move.name, noop, {
capture: false,
passive: false
});
return function teardown() {
window.removeEventListener(events$2.move.name, noop);
}; // We create a new handler because the teardown function of another sensor
// could remove our event listener if we use a referentially equal listener.
function noop() {}
}
}
TouchSensor.activators = [{
eventName: 'onTouchStart',
handler: (_ref, _ref2) => {
let {
nativeEvent: event
} = _ref;
let {
onActivation
} = _ref2;
const {
touches
} = event;
if (touches.length > 1) {
return false;
}
onActivation == null ? void 0 : onActivation({
event
});
return true;
}
}];
var AutoScrollActivator;
(function (AutoScrollActivator) {
AutoScrollActivator[AutoScrollActivator["Pointer"] = 0] = "Pointer";
AutoScrollActivator[AutoScrollActivator["DraggableRect"] = 1] = "DraggableRect";
})(AutoScrollActivator || (AutoScrollActivator = {}));
var TraversalOrder;
(function (TraversalOrder) {
TraversalOrder[TraversalOrder["TreeOrder"] = 0] = "TreeOrder";
TraversalOrder[TraversalOrder["ReversedTreeOrder"] = 1] = "ReversedTreeOrder";
})(TraversalOrder || (TraversalOrder = {}));
function useAutoScroller(_ref) {
let {
acceleration,
activator = AutoScrollActivator.Pointer,
canScroll,
draggingRect,
enabled,
interval = 5,
order = TraversalOrder.TreeOrder,
pointerCoordinates,
scrollableAncestors,
scrollableAncestorRects,
delta,
threshold
} = _ref;
const scrollIntent = useScrollIntent({
delta,
disabled: !enabled
});
const [setAutoScrollInterval, clearAutoScrollInterval] = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useInterval)();
const scrollSpeed = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({
x: 0,
y: 0
});
const scrollDirection = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({
x: 0,
y: 0
});
const rect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
switch (activator) {
case AutoScrollActivator.Pointer:
return pointerCoordinates ? {
top: pointerCoordinates.y,
bottom: pointerCoordinates.y,
left: pointerCoordinates.x,
right: pointerCoordinates.x
} : null;
case AutoScrollActivator.DraggableRect:
return draggingRect;
}
}, [activator, draggingRect, pointerCoordinates]);
const scrollContainerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const autoScroll = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
const scrollContainer = scrollContainerRef.current;
if (!scrollContainer) {
return;
}
const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;
const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;
scrollContainer.scrollBy(scrollLeft, scrollTop);
}, []);
const sortedScrollableAncestors = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (!enabled || !scrollableAncestors.length || !rect) {
clearAutoScrollInterval();
return;
}
for (const scrollContainer of sortedScrollableAncestors) {
if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {
continue;
}
const index = scrollableAncestors.indexOf(scrollContainer);
const scrollContainerRect = scrollableAncestorRects[index];
if (!scrollContainerRect) {
continue;
}
const {
direction,
speed
} = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);
for (const axis of ['x', 'y']) {
if (!scrollIntent[axis][direction[axis]]) {
speed[axis] = 0;
direction[axis] = 0;
}
}
if (speed.x > 0 || speed.y > 0) {
clearAutoScrollInterval();
scrollContainerRef.current = scrollContainer;
setAutoScrollInterval(autoScroll, interval);
scrollSpeed.current = speed;
scrollDirection.current = direction;
return;
}
}
scrollSpeed.current = {
x: 0,
y: 0
};
scrollDirection.current = {
x: 0,
y: 0
};
clearAutoScrollInterval();
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps
JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps
JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps
JSON.stringify(threshold)]);
}
const defaultScrollIntent = {
x: {
[Direction.Backward]: false,
[Direction.Forward]: false
},
y: {
[Direction.Backward]: false,
[Direction.Forward]: false
}
};
function useScrollIntent(_ref2) {
let {
delta,
disabled
} = _ref2;
const previousDelta = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.usePrevious)(delta);
return (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLazyMemo)(previousIntent => {
if (disabled || !previousDelta || !previousIntent) {
// Reset scroll intent tracking when auto-scrolling is disabled
return defaultScrollIntent;
}
const direction = {
x: Math.sign(delta.x - previousDelta.x),
y: Math.sign(delta.y - previousDelta.y)
}; // Keep track of the user intent to scroll in each direction for both axis
return {
x: {
[Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,
[Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1
},
y: {
[Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,
[Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1
}
};
}, [disabled, delta, previousDelta]);
}
function useCachedNode(draggableNodes, id) {
const draggableNode = id !== null ? draggableNodes.get(id) : undefined;
const node = draggableNode ? draggableNode.node.current : null;
return (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLazyMemo)(cachedNode => {
var _ref;
if (id === null) {
return null;
} // In some cases, the draggable node can unmount while dragging
// This is the case for virtualized lists. In those situations,
// we fall back to the last known value for that node.
return (_ref = node != null ? node : cachedNode) != null ? _ref : null;
}, [node, id]);
}
function useCombineActivators(sensors, getSyntheticHandler) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => sensors.reduce((accumulator, sensor) => {
const {
sensor: Sensor
} = sensor;
const sensorActivators = Sensor.activators.map(activator => ({
eventName: activator.eventName,
handler: getSyntheticHandler(activator.handler, sensor)
}));
return [...accumulator, ...sensorActivators];
}, []), [sensors, getSyntheticHandler]);
}
var MeasuringStrategy;
(function (MeasuringStrategy) {
MeasuringStrategy[MeasuringStrategy["Always"] = 0] = "Always";
MeasuringStrategy[MeasuringStrategy["BeforeDragging"] = 1] = "BeforeDragging";
MeasuringStrategy[MeasuringStrategy["WhileDragging"] = 2] = "WhileDragging";
})(MeasuringStrategy || (MeasuringStrategy = {}));
var MeasuringFrequency;
(function (MeasuringFrequency) {
MeasuringFrequency["Optimized"] = "optimized";
})(MeasuringFrequency || (MeasuringFrequency = {}));
const defaultValue = /*#__PURE__*/new Map();
function useDroppableMeasuring(containers, _ref) {
let {
dragging,
dependencies,
config
} = _ref;
const [queue, setQueue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const {
frequency,
measure,
strategy
} = config;
const containersRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(containers);
const disabled = isDisabled();
const disabledRef = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLatestValue)(disabled);
const measureDroppableContainers = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function (ids) {
if (ids === void 0) {
ids = [];
}
if (disabledRef.current) {
return;
}
setQueue(value => {
if (value === null) {
return ids;
}
return value.concat(ids.filter(id => !value.includes(id)));
});
}, [disabledRef]);
const timeoutId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const droppableRects = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLazyMemo)(previousValue => {
if (disabled && !dragging) {
return defaultValue;
}
if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {
const map = new Map();
for (let container of containers) {
if (!container) {
continue;
}
if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {
// This container does not need to be re-measured
map.set(container.id, container.rect.current);
continue;
}
const node = container.node.current;
const rect = node ? new Rect(measure(node), node) : null;
container.rect.current = rect;
if (rect) {
map.set(container.id, rect);
}
}
return map;
}
return previousValue;
}, [containers, queue, dragging, disabled, measure]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
containersRef.current = containers;
}, [containers]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (disabled) {
return;
}
measureDroppableContainers();
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[dragging, disabled]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (queue && queue.length > 0) {
setQueue(null);
}
}, //eslint-disable-next-line react-hooks/exhaustive-deps
[JSON.stringify(queue)]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {
return;
}
timeoutId.current = setTimeout(() => {
measureDroppableContainers();
timeoutId.current = null;
}, frequency);
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[frequency, disabled, measureDroppableContainers, ...dependencies]);
return {
droppableRects,
measureDroppableContainers,
measuringScheduled: queue != null
};
function isDisabled() {
switch (strategy) {
case MeasuringStrategy.Always:
return false;
case MeasuringStrategy.BeforeDragging:
return dragging;
default:
return !dragging;
}
}
}
function useInitialValue(value, computeFn) {
return (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLazyMemo)(previousValue => {
if (!value) {
return null;
}
if (previousValue) {
return previousValue;
}
return typeof computeFn === 'function' ? computeFn(value) : value;
}, [computeFn, value]);
}
function useInitialRect(node, measure) {
return useInitialValue(node, measure);
}
/**
* Returns a new MutationObserver instance.
* If `MutationObserver` is undefined in the execution environment, returns `undefined`.
*/
function useMutationObserver(_ref) {
let {
callback,
disabled
} = _ref;
const handleMutations = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useEvent)(callback);
const mutationObserver = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {
return undefined;
}
const {
MutationObserver
} = window;
return new MutationObserver(handleMutations);
}, [handleMutations, disabled]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();
}, [mutationObserver]);
return mutationObserver;
}
/**
* Returns a new ResizeObserver instance bound to the `onResize` callback.
* If `ResizeObserver` is undefined in the execution environment, returns `undefined`.
*/
function useResizeObserver(_ref) {
let {
callback,
disabled
} = _ref;
const handleResize = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useEvent)(callback);
const resizeObserver = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {
return undefined;
}
const {
ResizeObserver
} = window;
return new ResizeObserver(handleResize);
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[disabled]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();
}, [resizeObserver]);
return resizeObserver;
}
function defaultMeasure(element) {
return new Rect(getClientRect(element), element);
}
function useRect(element, measure, fallbackRect) {
if (measure === void 0) {
measure = defaultMeasure;
}
const [rect, measureRect] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, null);
const mutationObserver = useMutationObserver({
callback(records) {
if (!element) {
return;
}
for (const record of records) {
const {
type,
target
} = record;
if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {
measureRect();
break;
}
}
}
});
const resizeObserver = useResizeObserver({
callback: measureRect
});
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
measureRect();
if (element) {
resizeObserver == null ? void 0 : resizeObserver.observe(element);
mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {
childList: true,
subtree: true
});
} else {
resizeObserver == null ? void 0 : resizeObserver.disconnect();
mutationObserver == null ? void 0 : mutationObserver.disconnect();
}
}, [element]);
return rect;
function reducer(currentRect) {
if (!element) {
return null;
}
if (element.isConnected === false) {
var _ref;
// Fall back to last rect we measured if the element is
// no longer connected to the DOM.
return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;
}
const newRect = measure(element);
if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {
return currentRect;
}
return newRect;
}
}
function useRectDelta(rect) {
const initialRect = useInitialValue(rect);
return getRectDelta(rect, initialRect);
}
const defaultValue$1 = [];
function useScrollableAncestors(node) {
const previousNode = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(node);
const ancestors = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLazyMemo)(previousValue => {
if (!node) {
return defaultValue$1;
}
if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {
return previousValue;
}
return getScrollableAncestors(node);
}, [node]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
previousNode.current = node;
}, [node]);
return ancestors;
}
function useScrollOffsets(elements) {
const [scrollCoordinates, setScrollCoordinates] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const prevElements = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(elements); // To-do: Throttle the handleScroll callback
const handleScroll = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(event => {
const scrollingElement = getScrollableElement(event.target);
if (!scrollingElement) {
return;
}
setScrollCoordinates(scrollCoordinates => {
if (!scrollCoordinates) {
return null;
}
scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));
return new Map(scrollCoordinates);
});
}, []);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const previousElements = prevElements.current;
if (elements !== previousElements) {
cleanup(previousElements);
const entries = elements.map(element => {
const scrollableElement = getScrollableElement(element);
if (scrollableElement) {
scrollableElement.addEventListener('scroll', handleScroll, {
passive: true
});
return [scrollableElement, getScrollCoordinates(scrollableElement)];
}
return null;
}).filter(entry => entry != null);
setScrollCoordinates(entries.length ? new Map(entries) : null);
prevElements.current = elements;
}
return () => {
cleanup(elements);
cleanup(previousElements);
};
function cleanup(elements) {
elements.forEach(element => {
const scrollableElement = getScrollableElement(element);
scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);
});
}
}, [handleScroll, elements]);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
if (elements.length) {
return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.add)(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);
}
return defaultCoordinates;
}, [elements, scrollCoordinates]);
}
function useScrollOffsetsDelta(scrollOffsets, dependencies) {
if (dependencies === void 0) {
dependencies = [];
}
const initialScrollOffsets = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
initialScrollOffsets.current = null;
}, // eslint-disable-next-line react-hooks/exhaustive-deps
dependencies);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const hasScrollOffsets = scrollOffsets !== defaultCoordinates;
if (hasScrollOffsets && !initialScrollOffsets.current) {
initialScrollOffsets.current = scrollOffsets;
}
if (!hasScrollOffsets && initialScrollOffsets.current) {
initialScrollOffsets.current = null;
}
}, [scrollOffsets]);
return initialScrollOffsets.current ? (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.subtract)(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;
}
function useSensorSetup(sensors) {
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (!_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.canUseDOM) {
return;
}
const teardownFns = sensors.map(_ref => {
let {
sensor
} = _ref;
return sensor.setup == null ? void 0 : sensor.setup();
});
return () => {
for (const teardown of teardownFns) {
teardown == null ? void 0 : teardown();
}
};
}, // TO-DO: Sensors length could theoretically change which would not be a valid dependency
// eslint-disable-next-line react-hooks/exhaustive-deps
sensors.map(_ref2 => {
let {
sensor
} = _ref2;
return sensor;
}));
}
function useSyntheticListeners(listeners, id) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
return listeners.reduce((acc, _ref) => {
let {
eventName,
handler
} = _ref;
acc[eventName] = event => {
handler(event, id);
};
return acc;
}, {});
}, [listeners, id]);
}
function useWindowRect(element) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => element ? getWindowClientRect(element) : null, [element]);
}
const defaultValue$2 = [];
function useRects(elements, measure) {
if (measure === void 0) {
measure = getClientRect;
}
const [firstElement] = elements;
const windowRect = useWindowRect(firstElement ? (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(firstElement) : null);
const [rects, measureRects] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, defaultValue$2);
const resizeObserver = useResizeObserver({
callback: measureRects
});
if (elements.length > 0 && rects === defaultValue$2) {
measureRects();
}
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
if (elements.length) {
elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));
} else {
resizeObserver == null ? void 0 : resizeObserver.disconnect();
measureRects();
}
}, [elements]);
return rects;
function reducer() {
if (!elements.length) {
return defaultValue$2;
}
return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));
}
}
function getMeasurableNode(node) {
if (!node) {
return null;
}
if (node.children.length > 1) {
return node;
}
const firstChild = node.children[0];
return (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(firstChild) ? firstChild : node;
}
function useDragOverlayMeasuring(_ref) {
let {
measure
} = _ref;
const [rect, setRect] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const handleResize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(entries => {
for (const {
target
} of entries) {
if ((0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(target)) {
setRect(rect => {
const newRect = measure(target);
return rect ? { ...rect,
width: newRect.width,
height: newRect.height
} : newRect;
});
break;
}
}
}, [measure]);
const resizeObserver = useResizeObserver({
callback: handleResize
});
const handleNodeChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(element => {
const node = getMeasurableNode(element);
resizeObserver == null ? void 0 : resizeObserver.disconnect();
if (node) {
resizeObserver == null ? void 0 : resizeObserver.observe(node);
}
setRect(node ? measure(node) : null);
}, [measure, resizeObserver]);
const [nodeRef, setRef] = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useNodeRef)(handleNodeChange);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
nodeRef,
rect,
setRef
}), [rect, nodeRef, setRef]);
}
const defaultSensors = [{
sensor: PointerSensor,
options: {}
}, {
sensor: KeyboardSensor,
options: {}
}];
const defaultData = {
current: {}
};
const defaultMeasuringConfiguration = {
draggable: {
measure: getTransformAgnosticClientRect
},
droppable: {
measure: getTransformAgnosticClientRect,
strategy: MeasuringStrategy.WhileDragging,
frequency: MeasuringFrequency.Optimized
},
dragOverlay: {
measure: getClientRect
}
};
class DroppableContainersMap extends Map {
get(id) {
var _super$get;
return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;
}
toArray() {
return Array.from(this.values());
}
getEnabled() {
return this.toArray().filter(_ref => {
let {
disabled
} = _ref;
return !disabled;
});
}
getNodeFor(id) {
var _this$get$node$curren, _this$get;
return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;
}
}
const defaultPublicContext = {
activatorEvent: null,
active: null,
activeNode: null,
activeNodeRect: null,
collisions: null,
containerNodeRect: null,
draggableNodes: /*#__PURE__*/new Map(),
droppableRects: /*#__PURE__*/new Map(),
droppableContainers: /*#__PURE__*/new DroppableContainersMap(),
over: null,
dragOverlay: {
nodeRef: {
current: null
},
rect: null,
setRef: noop
},
scrollableAncestors: [],
scrollableAncestorRects: [],
measuringConfiguration: defaultMeasuringConfiguration,
measureDroppableContainers: noop,
windowRect: null,
measuringScheduled: false
};
const defaultInternalContext = {
activatorEvent: null,
activators: [],
active: null,
activeNodeRect: null,
ariaDescribedById: {
draggable: ''
},
dispatch: noop,
draggableNodes: /*#__PURE__*/new Map(),
over: null,
measureDroppableContainers: noop
};
const InternalContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(defaultInternalContext);
const PublicContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(defaultPublicContext);
function getInitialState() {
return {
draggable: {
active: null,
initialCoordinates: {
x: 0,
y: 0
},
nodes: new Map(),
translate: {
x: 0,
y: 0
}
},
droppable: {
containers: new DroppableContainersMap()
}
};
}
function reducer(state, action) {
switch (action.type) {
case Action.DragStart:
return { ...state,
draggable: { ...state.draggable,
initialCoordinates: action.initialCoordinates,
active: action.active
}
};
case Action.DragMove:
if (!state.draggable.active) {
return state;
}
return { ...state,
draggable: { ...state.draggable,
translate: {
x: action.coordinates.x - state.draggable.initialCoordinates.x,
y: action.coordinates.y - state.draggable.initialCoordinates.y
}
}
};
case Action.DragEnd:
case Action.DragCancel:
return { ...state,
draggable: { ...state.draggable,
active: null,
initialCoordinates: {
x: 0,
y: 0
},
translate: {
x: 0,
y: 0
}
}
};
case Action.RegisterDroppable:
{
const {
element
} = action;
const {
id
} = element;
const containers = new DroppableContainersMap(state.droppable.containers);
containers.set(id, element);
return { ...state,
droppable: { ...state.droppable,
containers
}
};
}
case Action.SetDroppableDisabled:
{
const {
id,
key,
disabled
} = action;
const element = state.droppable.containers.get(id);
if (!element || key !== element.key) {
return state;
}
const containers = new DroppableContainersMap(state.droppable.containers);
containers.set(id, { ...element,
disabled
});
return { ...state,
droppable: { ...state.droppable,
containers
}
};
}
case Action.UnregisterDroppable:
{
const {
id,
key
} = action;
const element = state.droppable.containers.get(id);
if (!element || key !== element.key) {
return state;
}
const containers = new DroppableContainersMap(state.droppable.containers);
containers.delete(id);
return { ...state,
droppable: { ...state.droppable,
containers
}
};
}
default:
{
return state;
}
}
}
function RestoreFocus(_ref) {
let {
disabled
} = _ref;
const {
active,
activatorEvent,
draggableNodes
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(InternalContext);
const previousActivatorEvent = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.usePrevious)(activatorEvent);
const previousActiveId = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.usePrevious)(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (disabled) {
return;
}
if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {
if (!(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isKeyboardEvent)(previousActivatorEvent)) {
return;
}
if (document.activeElement === previousActivatorEvent.target) {
// No need to restore focus
return;
}
const draggableNode = draggableNodes.get(previousActiveId);
if (!draggableNode) {
return;
}
const {
activatorNode,
node
} = draggableNode;
if (!activatorNode.current && !node.current) {
return;
}
requestAnimationFrame(() => {
for (const element of [activatorNode.current, node.current]) {
if (!element) {
continue;
}
const focusableNode = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.findFirstFocusableNode)(element);
if (focusableNode) {
focusableNode.focus();
break;
}
}
});
}
}, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);
return null;
}
function applyModifiers(modifiers, _ref) {
let {
transform,
...args
} = _ref;
return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {
return modifier({
transform: accumulator,
...args
});
}, transform) : transform;
}
function useMeasuringConfiguration(config) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
draggable: { ...defaultMeasuringConfiguration.draggable,
...(config == null ? void 0 : config.draggable)
},
droppable: { ...defaultMeasuringConfiguration.droppable,
...(config == null ? void 0 : config.droppable)
},
dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,
...(config == null ? void 0 : config.dragOverlay)
}
}), // eslint-disable-next-line react-hooks/exhaustive-deps
[config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);
}
function useLayoutShiftScrollCompensation(_ref) {
let {
activeNode,
measure,
initialRect,
config = true
} = _ref;
const initialized = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
const {
x,
y
} = typeof config === 'boolean' ? {
x: config,
y: config
} : config;
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
const disabled = !x && !y;
if (disabled || !activeNode) {
initialized.current = false;
return;
}
if (initialized.current || !initialRect) {
// Return early if layout shift scroll compensation was already attempted
// or if there is no initialRect to compare to.
return;
} // Get the most up to date node ref for the active draggable
const node = activeNode == null ? void 0 : activeNode.node.current;
if (!node || node.isConnected === false) {
// Return early if there is no attached node ref or if the node is
// disconnected from the document.
return;
}
const rect = measure(node);
const rectDelta = getRectDelta(rect, initialRect);
if (!x) {
rectDelta.x = 0;
}
if (!y) {
rectDelta.y = 0;
} // Only perform layout shift scroll compensation once
initialized.current = true;
if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {
const firstScrollableAncestor = getFirstScrollableAncestor(node);
if (firstScrollableAncestor) {
firstScrollableAncestor.scrollBy({
top: rectDelta.y,
left: rectDelta.x
});
}
}
}, [activeNode, x, y, initialRect, measure]);
}
const ActiveDraggableContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({ ...defaultCoordinates,
scaleX: 1,
scaleY: 1
});
var Status;
(function (Status) {
Status[Status["Uninitialized"] = 0] = "Uninitialized";
Status[Status["Initializing"] = 1] = "Initializing";
Status[Status["Initialized"] = 2] = "Initialized";
})(Status || (Status = {}));
const DndContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.memo)(function DndContext(_ref) {
var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;
let {
id,
accessibility,
autoScroll = true,
children,
sensors = defaultSensors,
collisionDetection = rectIntersection,
measuring,
modifiers,
...props
} = _ref;
const store = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, undefined, getInitialState);
const [state, dispatch] = store;
const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();
const [status, setStatus] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(Status.Uninitialized);
const isInitialized = status === Status.Initialized;
const {
draggable: {
active: activeId,
nodes: draggableNodes,
translate
},
droppable: {
containers: droppableContainers
}
} = state;
const node = activeId ? draggableNodes.get(activeId) : null;
const activeRects = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({
initial: null,
translated: null
});
const active = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
var _node$data;
return activeId != null ? {
id: activeId,
// It's possible for the active node to unmount while dragging
data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,
rect: activeRects
} : null;
}, [activeId, node]);
const activeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const [activeSensor, setActiveSensor] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const [activatorEvent, setActivatorEvent] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const latestProps = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLatestValue)(props, Object.values(props));
const draggableDescribedById = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useUniqueId)("DndDescribedBy", id);
const enabledDroppableContainers = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => droppableContainers.getEnabled(), [droppableContainers]);
const measuringConfiguration = useMeasuringConfiguration(measuring);
const {
droppableRects,
measureDroppableContainers,
measuringScheduled
} = useDroppableMeasuring(enabledDroppableContainers, {
dragging: isInitialized,
dependencies: [translate.x, translate.y],
config: measuringConfiguration.droppable
});
const activeNode = useCachedNode(draggableNodes, activeId);
const activationCoordinates = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => activatorEvent ? (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getEventCoordinates)(activatorEvent) : null, [activatorEvent]);
const autoScrollOptions = getAutoScrollerOptions();
const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);
useLayoutShiftScrollCompensation({
activeNode: activeId ? draggableNodes.get(activeId) : null,
config: autoScrollOptions.layoutShiftCompensation,
initialRect: initialActiveNodeRect,
measure: measuringConfiguration.draggable.measure
});
const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);
const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);
const sensorContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({
activatorEvent: null,
active: null,
activeNode,
collisionRect: null,
collisions: null,
droppableRects,
draggableNodes,
draggingNode: null,
draggingNodeRect: null,
droppableContainers,
over: null,
scrollableAncestors: [],
scrollAdjustedTranslate: null
});
const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);
const dragOverlay = useDragOverlayMeasuring({
measure: measuringConfiguration.dragOverlay.measure
}); // Use the rect of the drag overlay if it is mounted
const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;
const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;
const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node
// is only relevant when there is no drag overlay
const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node
const windowRect = useWindowRect(draggingNode ? (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(draggingNode) : null); // Get scrollable ancestors of the dragging node
const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);
const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers
const modifiedTranslate = applyModifiers(modifiers, {
transform: {
x: translate.x - nodeRectDelta.x,
y: translate.y - nodeRectDelta.y,
scaleX: 1,
scaleY: 1
},
activatorEvent,
active,
activeNodeRect,
containerNodeRect,
draggingNodeRect,
over: sensorContext.current.over,
overlayNodeRect: dragOverlay.rect,
scrollableAncestors,
scrollableAncestorRects,
windowRect
});
const pointerCoordinates = activationCoordinates ? (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.add)(activationCoordinates, translate) : null;
const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated
const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured
const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);
const scrollAdjustedTranslate = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.add)(modifiedTranslate, scrollAdjustment);
const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;
const collisions = active && collisionRect ? collisionDetection({
active,
collisionRect,
droppableRects,
droppableContainers: enabledDroppableContainers,
pointerCoordinates
}) : null;
const overId = getFirstCollision(collisions, 'id');
const [over, setOver] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); // When there is no drag overlay used, we need to account for the
// window scroll delta
const appliedTranslate = usesDragOverlay ? modifiedTranslate : (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.add)(modifiedTranslate, activeNodeScrollDelta);
const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);
const instantiateSensor = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((event, _ref2) => {
let {
sensor: Sensor,
options
} = _ref2;
if (activeRef.current == null) {
return;
}
const activeNode = draggableNodes.get(activeRef.current);
if (!activeNode) {
return;
}
const activatorEvent = event.nativeEvent;
const sensorInstance = new Sensor({
active: activeRef.current,
activeNode,
event: activatorEvent,
options,
// Sensors need to be instantiated with refs for arguments that change over time
// otherwise they are frozen in time with the stale arguments
context: sensorContext,
onStart(initialCoordinates) {
const id = activeRef.current;
if (id == null) {
return;
}
const draggableNode = draggableNodes.get(id);
if (!draggableNode) {
return;
}
const {
onDragStart
} = latestProps.current;
const event = {
active: {
id,
data: draggableNode.data,
rect: activeRects
}
};
(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.unstable_batchedUpdates)(() => {
onDragStart == null ? void 0 : onDragStart(event);
setStatus(Status.Initializing);
dispatch({
type: Action.DragStart,
initialCoordinates,
active: id
});
dispatchMonitorEvent({
type: 'onDragStart',
event
});
});
},
onMove(coordinates) {
dispatch({
type: Action.DragMove,
coordinates
});
},
onEnd: createHandler(Action.DragEnd),
onCancel: createHandler(Action.DragCancel)
});
(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.unstable_batchedUpdates)(() => {
setActiveSensor(sensorInstance);
setActivatorEvent(event.nativeEvent);
});
function createHandler(type) {
return async function handler() {
const {
active,
collisions,
over,
scrollAdjustedTranslate
} = sensorContext.current;
let event = null;
if (active && scrollAdjustedTranslate) {
const {
cancelDrop
} = latestProps.current;
event = {
activatorEvent,
active: active,
collisions,
delta: scrollAdjustedTranslate,
over
};
if (type === Action.DragEnd && typeof cancelDrop === 'function') {
const shouldCancel = await Promise.resolve(cancelDrop(event));
if (shouldCancel) {
type = Action.DragCancel;
}
}
}
activeRef.current = null;
(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.unstable_batchedUpdates)(() => {
dispatch({
type
});
setStatus(Status.Uninitialized);
setOver(null);
setActiveSensor(null);
setActivatorEvent(null);
const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';
if (event) {
const handler = latestProps.current[eventName];
handler == null ? void 0 : handler(event);
dispatchMonitorEvent({
type: eventName,
event
});
}
});
};
}
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[draggableNodes]);
const bindActivatorToSensorInstantiator = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((handler, sensor) => {
return (event, active) => {
const nativeEvent = event.nativeEvent;
const activeDraggableNode = draggableNodes.get(active);
if ( // Another sensor is already instantiating
activeRef.current !== null || // No active draggable
!activeDraggableNode || // Event has already been captured
nativeEvent.dndKit || nativeEvent.defaultPrevented) {
return;
}
const activationContext = {
active: activeDraggableNode
};
const shouldActivate = handler(event, sensor.options, activationContext);
if (shouldActivate === true) {
nativeEvent.dndKit = {
capturedBy: sensor.sensor
};
activeRef.current = active;
instantiateSensor(event, sensor);
}
};
}, [draggableNodes, instantiateSensor]);
const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);
useSensorSetup(sensors);
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
if (activeNodeRect && status === Status.Initializing) {
setStatus(Status.Initialized);
}
}, [activeNodeRect, status]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const {
onDragMove
} = latestProps.current;
const {
active,
activatorEvent,
collisions,
over
} = sensorContext.current;
if (!active || !activatorEvent) {
return;
}
const event = {
active,
activatorEvent,
collisions,
delta: {
x: scrollAdjustedTranslate.x,
y: scrollAdjustedTranslate.y
},
over
};
(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.unstable_batchedUpdates)(() => {
onDragMove == null ? void 0 : onDragMove(event);
dispatchMonitorEvent({
type: 'onDragMove',
event
});
});
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const {
active,
activatorEvent,
collisions,
droppableContainers,
scrollAdjustedTranslate
} = sensorContext.current;
if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {
return;
}
const {
onDragOver
} = latestProps.current;
const overContainer = droppableContainers.get(overId);
const over = overContainer && overContainer.rect.current ? {
id: overContainer.id,
rect: overContainer.rect.current,
data: overContainer.data,
disabled: overContainer.disabled
} : null;
const event = {
active,
activatorEvent,
collisions,
delta: {
x: scrollAdjustedTranslate.x,
y: scrollAdjustedTranslate.y
},
over
};
(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.unstable_batchedUpdates)(() => {
setOver(over);
onDragOver == null ? void 0 : onDragOver(event);
dispatchMonitorEvent({
type: 'onDragOver',
event
});
});
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[overId]);
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
sensorContext.current = {
activatorEvent,
active,
activeNode,
collisionRect,
collisions,
droppableRects,
draggableNodes,
draggingNode,
draggingNodeRect,
droppableContainers,
over,
scrollableAncestors,
scrollAdjustedTranslate
};
activeRects.current = {
initial: draggingNodeRect,
translated: collisionRect
};
}, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);
useAutoScroller({ ...autoScrollOptions,
delta: translate,
draggingRect: collisionRect,
pointerCoordinates,
scrollableAncestors,
scrollableAncestorRects
});
const publicContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
const context = {
active,
activeNode,
activeNodeRect,
activatorEvent,
collisions,
containerNodeRect,
dragOverlay,
draggableNodes,
droppableContainers,
droppableRects,
over,
measureDroppableContainers,
scrollableAncestors,
scrollableAncestorRects,
measuringConfiguration,
measuringScheduled,
windowRect
};
return context;
}, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);
const internalContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
const context = {
activatorEvent,
activators,
active,
activeNodeRect,
ariaDescribedById: {
draggable: draggableDescribedById
},
dispatch,
draggableNodes,
over,
measureDroppableContainers
};
return context;
}, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(DndMonitorContext.Provider, {
value: registerMonitorListener
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InternalContext.Provider, {
value: internalContext
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PublicContext.Provider, {
value: publicContext
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ActiveDraggableContext.Provider, {
value: transform
}, children)), react__WEBPACK_IMPORTED_MODULE_0___default().createElement(RestoreFocus, {
disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false
})), react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Accessibility, { ...accessibility,
hiddenTextDescribedById: draggableDescribedById
}));
function getAutoScrollerOptions() {
const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;
const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;
const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;
if (typeof autoScroll === 'object') {
return { ...autoScroll,
enabled
};
}
return {
enabled
};
}
});
const NullContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);
const defaultRole = 'button';
const ID_PREFIX = 'Droppable';
function useDraggable(_ref) {
let {
id,
data,
disabled = false,
attributes
} = _ref;
const key = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useUniqueId)(ID_PREFIX);
const {
activators,
activatorEvent,
active,
activeNodeRect,
ariaDescribedById,
draggableNodes,
over
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(InternalContext);
const {
role = defaultRole,
roleDescription = 'draggable',
tabIndex = 0
} = attributes != null ? attributes : {};
const isDragging = (active == null ? void 0 : active.id) === id;
const transform = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(isDragging ? ActiveDraggableContext : NullContext);
const [node, setNodeRef] = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useNodeRef)();
const [activatorNode, setActivatorNodeRef] = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useNodeRef)();
const listeners = useSyntheticListeners(activators, id);
const dataRef = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLatestValue)(data);
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
draggableNodes.set(id, {
id,
key,
node,
activatorNode,
data: dataRef
});
return () => {
const node = draggableNodes.get(id);
if (node && node.key === key) {
draggableNodes.delete(id);
}
};
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[draggableNodes, id]);
const memoizedAttributes = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
role,
tabIndex,
'aria-disabled': disabled,
'aria-pressed': isDragging && role === defaultRole ? true : undefined,
'aria-roledescription': roleDescription,
'aria-describedby': ariaDescribedById.draggable
}), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);
return {
active,
activatorEvent,
activeNodeRect,
attributes: memoizedAttributes,
isDragging,
listeners: disabled ? undefined : listeners,
node,
over,
setNodeRef,
setActivatorNodeRef,
transform
};
}
function useDndContext() {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(PublicContext);
}
const ID_PREFIX$1 = 'Droppable';
const defaultResizeObserverConfig = {
timeout: 25
};
function useDroppable(_ref) {
let {
data,
disabled = false,
id,
resizeObserverConfig
} = _ref;
const key = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useUniqueId)(ID_PREFIX$1);
const {
active,
dispatch,
over,
measureDroppableContainers
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(InternalContext);
const previous = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({
disabled
});
const resizeObserverConnected = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);
const rect = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const callbackId = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const {
disabled: resizeObserverDisabled,
updateMeasurementsFor,
timeout: resizeObserverTimeout
} = { ...defaultResizeObserverConfig,
...resizeObserverConfig
};
const ids = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLatestValue)(updateMeasurementsFor != null ? updateMeasurementsFor : id);
const handleResize = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
if (!resizeObserverConnected.current) {
// ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,
// assuming the element is rendered and displayed.
resizeObserverConnected.current = true;
return;
}
if (callbackId.current != null) {
clearTimeout(callbackId.current);
}
callbackId.current = setTimeout(() => {
measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);
callbackId.current = null;
}, resizeObserverTimeout);
}, //eslint-disable-next-line react-hooks/exhaustive-deps
[resizeObserverTimeout]);
const resizeObserver = useResizeObserver({
callback: handleResize,
disabled: resizeObserverDisabled || !active
});
const handleNodeChange = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((newElement, previousElement) => {
if (!resizeObserver) {
return;
}
if (previousElement) {
resizeObserver.unobserve(previousElement);
resizeObserverConnected.current = false;
}
if (newElement) {
resizeObserver.observe(newElement);
}
}, [resizeObserver]);
const [nodeRef, setNodeRef] = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useNodeRef)(handleNodeChange);
const dataRef = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useLatestValue)(data);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (!resizeObserver || !nodeRef.current) {
return;
}
resizeObserver.disconnect();
resizeObserverConnected.current = false;
resizeObserver.observe(nodeRef.current);
}, [nodeRef, resizeObserver]);
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
dispatch({
type: Action.RegisterDroppable,
element: {
id,
key,
disabled,
node: nodeRef,
rect,
data: dataRef
}
});
return () => dispatch({
type: Action.UnregisterDroppable,
key,
id
});
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[id]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (disabled !== previous.current.disabled) {
dispatch({
type: Action.SetDroppableDisabled,
id,
key,
disabled
});
previous.current.disabled = disabled;
}
}, [id, key, disabled, dispatch]);
return {
active,
rect,
isOver: (over == null ? void 0 : over.id) === id,
node: nodeRef,
over,
setNodeRef
};
}
function AnimationManager(_ref) {
let {
animation,
children
} = _ref;
const [clonedChildren, setClonedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const [element, setElement] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const previousChildren = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.usePrevious)(children);
if (!children && !clonedChildren && previousChildren) {
setClonedChildren(previousChildren);
}
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
if (!element) {
return;
}
const key = clonedChildren == null ? void 0 : clonedChildren.key;
const id = clonedChildren == null ? void 0 : clonedChildren.props.id;
if (key == null || id == null) {
setClonedChildren(null);
return;
}
Promise.resolve(animation(id, element)).then(() => {
setClonedChildren(null);
});
}, [animation, clonedChildren, element]);
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children, clonedChildren ? (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(clonedChildren, {
ref: setElement
}) : null);
}
const defaultTransform = {
x: 0,
y: 0,
scaleX: 1,
scaleY: 1
};
function NullifiedContextProvider(_ref) {
let {
children
} = _ref;
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(InternalContext.Provider, {
value: defaultInternalContext
}, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(ActiveDraggableContext.Provider, {
value: defaultTransform
}, children));
}
const baseStyles = {
position: 'fixed',
touchAction: 'none'
};
const defaultTransition = activatorEvent => {
const isKeyboardActivator = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isKeyboardEvent)(activatorEvent);
return isKeyboardActivator ? 'transform 250ms ease' : undefined;
};
const PositionedOverlay = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((_ref, ref) => {
let {
as,
activatorEvent,
adjustScale,
children,
className,
rect,
style,
transform,
transition = defaultTransition
} = _ref;
if (!rect) {
return null;
}
const scaleAdjustedTransform = adjustScale ? transform : { ...transform,
scaleX: 1,
scaleY: 1
};
const styles = { ...baseStyles,
width: rect.width,
height: rect.height,
top: rect.top,
left: rect.left,
transform: _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.CSS.Transform.toString(scaleAdjustedTransform),
transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,
transition: typeof transition === 'function' ? transition(activatorEvent) : transition,
...style
};
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(as, {
className,
style: styles,
ref
}, children);
});
const defaultDropAnimationSideEffects = options => _ref => {
let {
active,
dragOverlay
} = _ref;
const originalStyles = {};
const {
styles,
className
} = options;
if (styles != null && styles.active) {
for (const [key, value] of Object.entries(styles.active)) {
if (value === undefined) {
continue;
}
originalStyles[key] = active.node.style.getPropertyValue(key);
active.node.style.setProperty(key, value);
}
}
if (styles != null && styles.dragOverlay) {
for (const [key, value] of Object.entries(styles.dragOverlay)) {
if (value === undefined) {
continue;
}
dragOverlay.node.style.setProperty(key, value);
}
}
if (className != null && className.active) {
active.node.classList.add(className.active);
}
if (className != null && className.dragOverlay) {
dragOverlay.node.classList.add(className.dragOverlay);
}
return function cleanup() {
for (const [key, value] of Object.entries(originalStyles)) {
active.node.style.setProperty(key, value);
}
if (className != null && className.active) {
active.node.classList.remove(className.active);
}
};
};
const defaultKeyframeResolver = _ref2 => {
let {
transform: {
initial,
final
}
} = _ref2;
return [{
transform: _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.CSS.Transform.toString(initial)
}, {
transform: _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.CSS.Transform.toString(final)
}];
};
const defaultDropAnimationConfiguration = {
duration: 250,
easing: 'ease',
keyframes: defaultKeyframeResolver,
sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({
styles: {
active: {
opacity: '0'
}
}
})
};
function useDropAnimation(_ref3) {
let {
config,
draggableNodes,
droppableContainers,
measuringConfiguration
} = _ref3;
return (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useEvent)((id, node) => {
if (config === null) {
return;
}
const activeDraggable = draggableNodes.get(id);
if (!activeDraggable) {
return;
}
const activeNode = activeDraggable.node.current;
if (!activeNode) {
return;
}
const measurableNode = getMeasurableNode(node);
if (!measurableNode) {
return;
}
const {
transform
} = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.getWindow)(node).getComputedStyle(node);
const parsedTransform = parseTransform(transform);
if (!parsedTransform) {
return;
}
const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);
scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);
return animation({
active: {
id,
data: activeDraggable.data,
node: activeNode,
rect: measuringConfiguration.draggable.measure(activeNode)
},
draggableNodes,
dragOverlay: {
node,
rect: measuringConfiguration.dragOverlay.measure(measurableNode)
},
droppableContainers,
measuringConfiguration,
transform: parsedTransform
});
});
}
function createDefaultDropAnimation(options) {
const {
duration,
easing,
sideEffects,
keyframes
} = { ...defaultDropAnimationConfiguration,
...options
};
return _ref4 => {
let {
active,
dragOverlay,
transform,
...rest
} = _ref4;
if (!duration) {
// Do not animate if animation duration is zero.
return;
}
const delta = {
x: dragOverlay.rect.left - active.rect.left,
y: dragOverlay.rect.top - active.rect.top
};
const scale = {
scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,
scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1
};
const finalTransform = {
x: transform.x - delta.x,
y: transform.y - delta.y,
...scale
};
const animationKeyframes = keyframes({ ...rest,
active,
dragOverlay,
transform: {
initial: transform,
final: finalTransform
}
});
const [firstKeyframe] = animationKeyframes;
const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];
if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {
// The start and end keyframes are the same, infer that there is no animation needed.
return;
}
const cleanup = sideEffects == null ? void 0 : sideEffects({
active,
dragOverlay,
...rest
});
const animation = dragOverlay.node.animate(animationKeyframes, {
duration,
easing,
fill: 'forwards'
});
return new Promise(resolve => {
animation.onfinish = () => {
cleanup == null ? void 0 : cleanup();
resolve();
};
});
};
}
let key = 0;
function useKey(id) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
if (id == null) {
return;
}
key++;
return key;
}, [id]);
}
const DragOverlay = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().memo(_ref => {
let {
adjustScale = false,
children,
dropAnimation: dropAnimationConfig,
style,
transition,
modifiers,
wrapperElement = 'div',
className,
zIndex = 999
} = _ref;
const {
activatorEvent,
active,
activeNodeRect,
containerNodeRect,
draggableNodes,
droppableContainers,
dragOverlay,
over,
measuringConfiguration,
scrollableAncestors,
scrollableAncestorRects,
windowRect
} = useDndContext();
const transform = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(ActiveDraggableContext);
const key = useKey(active == null ? void 0 : active.id);
const modifiedTransform = applyModifiers(modifiers, {
activatorEvent,
active,
activeNodeRect,
containerNodeRect,
draggingNodeRect: dragOverlay.rect,
over,
overlayNodeRect: dragOverlay.rect,
scrollableAncestors,
scrollableAncestorRects,
transform,
windowRect
});
const initialRect = useInitialValue(activeNodeRect);
const dropAnimation = useDropAnimation({
config: dropAnimationConfig,
draggableNodes,
droppableContainers,
measuringConfiguration
}); // We need to wait for the active node to be measured before connecting the drag overlay ref
// otherwise collisions can be computed against a mispositioned drag overlay
const ref = initialRect ? dragOverlay.setRef : undefined;
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(NullifiedContextProvider, null, react__WEBPACK_IMPORTED_MODULE_0___default().createElement(AnimationManager, {
animation: dropAnimation
}, active && key ? react__WEBPACK_IMPORTED_MODULE_0___default().createElement(PositionedOverlay, {
key: key,
id: active.id,
ref: ref,
as: wrapperElement,
activatorEvent: activatorEvent,
adjustScale: adjustScale,
className: className,
transition: transition,
rect: initialRect,
style: {
zIndex,
...style
},
transform: modifiedTransform
}, children) : null));
});
//# sourceMappingURL=core.esm.js.map
/***/ }),
/***/ "./node_modules/@dnd-kit/sortable/dist/sortable.esm.js":
/*!*************************************************************!*\
!*** ./node_modules/@dnd-kit/sortable/dist/sortable.esm.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ SortableContext: () => (/* binding */ SortableContext),
/* harmony export */ arrayMove: () => (/* binding */ arrayMove),
/* harmony export */ arraySwap: () => (/* binding */ arraySwap),
/* harmony export */ defaultAnimateLayoutChanges: () => (/* binding */ defaultAnimateLayoutChanges),
/* harmony export */ defaultNewIndexGetter: () => (/* binding */ defaultNewIndexGetter),
/* harmony export */ hasSortableData: () => (/* binding */ hasSortableData),
/* harmony export */ horizontalListSortingStrategy: () => (/* binding */ horizontalListSortingStrategy),
/* harmony export */ rectSortingStrategy: () => (/* binding */ rectSortingStrategy),
/* harmony export */ rectSwappingStrategy: () => (/* binding */ rectSwappingStrategy),
/* harmony export */ sortableKeyboardCoordinates: () => (/* binding */ sortableKeyboardCoordinates),
/* harmony export */ useSortable: () => (/* binding */ useSortable),
/* harmony export */ verticalListSortingStrategy: () => (/* binding */ verticalListSortingStrategy)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @dnd-kit/core */ "./node_modules/@dnd-kit/core/dist/core.esm.js");
/* harmony import */ var _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @dnd-kit/utilities */ "./node_modules/@dnd-kit/utilities/dist/utilities.esm.js");
/**
* Move an array item to a different position. Returns a new array with the item moved to the new position.
*/
function arrayMove(array, from, to) {
const newArray = array.slice();
newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);
return newArray;
}
/**
* Swap an array item to a different position. Returns a new array with the item swapped to the new position.
*/
function arraySwap(array, from, to) {
const newArray = array.slice();
newArray[from] = array[to];
newArray[to] = array[from];
return newArray;
}
function getSortedRects(items, rects) {
return items.reduce((accumulator, id, index) => {
const rect = rects.get(id);
if (rect) {
accumulator[index] = rect;
}
return accumulator;
}, Array(items.length));
}
function isValidIndex(index) {
return index !== null && index >= 0;
}
function itemsEqual(a, b) {
if (a === b) {
return true;
}
if (a.length !== b.length) {
return false;
}
for (let i = 0; i < a.length; i++) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
}
function normalizeDisabled(disabled) {
if (typeof disabled === 'boolean') {
return {
draggable: disabled,
droppable: disabled
};
}
return disabled;
}
// To-do: We should be calculating scale transformation
const defaultScale = {
scaleX: 1,
scaleY: 1
};
const horizontalListSortingStrategy = _ref => {
var _rects$activeIndex;
let {
rects,
activeNodeRect: fallbackActiveRect,
activeIndex,
overIndex,
index
} = _ref;
const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;
if (!activeNodeRect) {
return null;
}
const itemGap = getItemGap(rects, index, activeIndex);
if (index === activeIndex) {
const newIndexRect = rects[overIndex];
if (!newIndexRect) {
return null;
}
return {
x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,
y: 0,
...defaultScale
};
}
if (index > activeIndex && index <= overIndex) {
return {
x: -activeNodeRect.width - itemGap,
y: 0,
...defaultScale
};
}
if (index < activeIndex && index >= overIndex) {
return {
x: activeNodeRect.width + itemGap,
y: 0,
...defaultScale
};
}
return {
x: 0,
y: 0,
...defaultScale
};
};
function getItemGap(rects, index, activeIndex) {
const currentRect = rects[index];
const previousRect = rects[index - 1];
const nextRect = rects[index + 1];
if (!currentRect || !previousRect && !nextRect) {
return 0;
}
if (activeIndex < index) {
return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);
}
return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);
}
const rectSortingStrategy = _ref => {
let {
rects,
activeIndex,
overIndex,
index
} = _ref;
const newRects = arrayMove(rects, overIndex, activeIndex);
const oldRect = rects[index];
const newRect = newRects[index];
if (!newRect || !oldRect) {
return null;
}
return {
x: newRect.left - oldRect.left,
y: newRect.top - oldRect.top,
scaleX: newRect.width / oldRect.width,
scaleY: newRect.height / oldRect.height
};
};
const rectSwappingStrategy = _ref => {
let {
activeIndex,
index,
rects,
overIndex
} = _ref;
let oldRect;
let newRect;
if (index === activeIndex) {
oldRect = rects[index];
newRect = rects[overIndex];
}
if (index === overIndex) {
oldRect = rects[index];
newRect = rects[activeIndex];
}
if (!newRect || !oldRect) {
return null;
}
return {
x: newRect.left - oldRect.left,
y: newRect.top - oldRect.top,
scaleX: newRect.width / oldRect.width,
scaleY: newRect.height / oldRect.height
};
};
// To-do: We should be calculating scale transformation
const defaultScale$1 = {
scaleX: 1,
scaleY: 1
};
const verticalListSortingStrategy = _ref => {
var _rects$activeIndex;
let {
activeIndex,
activeNodeRect: fallbackActiveRect,
index,
rects,
overIndex
} = _ref;
const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;
if (!activeNodeRect) {
return null;
}
if (index === activeIndex) {
const overIndexRect = rects[overIndex];
if (!overIndexRect) {
return null;
}
return {
x: 0,
y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,
...defaultScale$1
};
}
const itemGap = getItemGap$1(rects, index, activeIndex);
if (index > activeIndex && index <= overIndex) {
return {
x: 0,
y: -activeNodeRect.height - itemGap,
...defaultScale$1
};
}
if (index < activeIndex && index >= overIndex) {
return {
x: 0,
y: activeNodeRect.height + itemGap,
...defaultScale$1
};
}
return {
x: 0,
y: 0,
...defaultScale$1
};
};
function getItemGap$1(clientRects, index, activeIndex) {
const currentRect = clientRects[index];
const previousRect = clientRects[index - 1];
const nextRect = clientRects[index + 1];
if (!currentRect) {
return 0;
}
if (activeIndex < index) {
return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;
}
return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;
}
const ID_PREFIX = 'Sortable';
const Context = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createContext({
activeIndex: -1,
containerId: ID_PREFIX,
disableTransforms: false,
items: [],
overIndex: -1,
useDragOverlay: false,
sortedRects: [],
strategy: rectSortingStrategy,
disabled: {
draggable: false,
droppable: false
}
});
function SortableContext(_ref) {
let {
children,
id,
items: userDefinedItems,
strategy = rectSortingStrategy,
disabled: disabledProp = false
} = _ref;
const {
active,
dragOverlay,
droppableRects,
over,
measureDroppableContainers
} = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.useDndContext)();
const containerId = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useUniqueId)(ID_PREFIX, id);
const useDragOverlay = Boolean(dragOverlay.rect !== null);
const items = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);
const isDragging = active != null;
const activeIndex = active ? items.indexOf(active.id) : -1;
const overIndex = over ? items.indexOf(over.id) : -1;
const previousItemsRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(items);
const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);
const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;
const disabled = normalizeDisabled(disabledProp);
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
if (itemsHaveChanged && isDragging) {
measureDroppableContainers(items);
}
}, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
previousItemsRef.current = items;
}, [items]);
const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
activeIndex,
containerId,
disabled,
disableTransforms,
items,
overIndex,
useDragOverlay,
sortedRects: getSortedRects(items, droppableRects),
strategy
}), // eslint-disable-next-line react-hooks/exhaustive-deps
[activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Context.Provider, {
value: contextValue
}, children);
}
const defaultNewIndexGetter = _ref => {
let {
id,
items,
activeIndex,
overIndex
} = _ref;
return arrayMove(items, activeIndex, overIndex).indexOf(id);
};
const defaultAnimateLayoutChanges = _ref2 => {
let {
containerId,
isSorting,
wasDragging,
index,
items,
newIndex,
previousItems,
previousContainerId,
transition
} = _ref2;
if (!transition || !wasDragging) {
return false;
}
if (previousItems !== items && index === newIndex) {
return false;
}
if (isSorting) {
return true;
}
return newIndex !== index && containerId === previousContainerId;
};
const defaultTransition = {
duration: 200,
easing: 'ease'
};
const transitionProperty = 'transform';
const disabledTransition = /*#__PURE__*/_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.CSS.Transition.toString({
property: transitionProperty,
duration: 0,
easing: 'linear'
});
const defaultAttributes = {
roleDescription: 'sortable'
};
/*
* When the index of an item changes while sorting,
* we need to temporarily disable the transforms
*/
function useDerivedTransform(_ref) {
let {
disabled,
index,
node,
rect
} = _ref;
const [derivedTransform, setDerivedtransform] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const previousIndex = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(index);
(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(() => {
if (!disabled && index !== previousIndex.current && node.current) {
const initial = rect.current;
if (initial) {
const current = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.getClientRect)(node.current, {
ignoreTransform: true
});
const delta = {
x: initial.left - current.left,
y: initial.top - current.top,
scaleX: initial.width / current.width,
scaleY: initial.height / current.height
};
if (delta.x || delta.y) {
setDerivedtransform(delta);
}
}
}
if (index !== previousIndex.current) {
previousIndex.current = index;
}
}, [disabled, index, node, rect]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (derivedTransform) {
setDerivedtransform(null);
}
}, [derivedTransform]);
return derivedTransform;
}
function useSortable(_ref) {
let {
animateLayoutChanges = defaultAnimateLayoutChanges,
attributes: userDefinedAttributes,
disabled: localDisabled,
data: customData,
getNewIndex = defaultNewIndexGetter,
id,
strategy: localStrategy,
resizeObserverConfig,
transition = defaultTransition
} = _ref;
const {
items,
containerId,
activeIndex,
disabled: globalDisabled,
disableTransforms,
sortedRects,
overIndex,
useDragOverlay,
strategy: globalStrategy
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(Context);
const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);
const index = items.indexOf(id);
const data = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
sortable: {
containerId,
index,
items
},
...customData
}), [containerId, customData, index, items]);
const itemsAfterCurrentSortable = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => items.slice(items.indexOf(id)), [items, id]);
const {
rect,
node,
isOver,
setNodeRef: setDroppableNodeRef
} = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.useDroppable)({
id,
data,
disabled: disabled.droppable,
resizeObserverConfig: {
updateMeasurementsFor: itemsAfterCurrentSortable,
...resizeObserverConfig
}
});
const {
active,
activatorEvent,
activeNodeRect,
attributes,
setNodeRef: setDraggableNodeRef,
listeners,
isDragging,
over,
setActivatorNodeRef,
transform
} = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.useDraggable)({
id,
data,
attributes: { ...defaultAttributes,
...userDefinedAttributes
},
disabled: disabled.draggable
});
const setNodeRef = (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.useCombinedRefs)(setDroppableNodeRef, setDraggableNodeRef);
const isSorting = Boolean(active);
const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);
const shouldDisplaceDragSource = !useDragOverlay && isDragging;
const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;
const strategy = localStrategy != null ? localStrategy : globalStrategy;
const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({
rects: sortedRects,
activeNodeRect,
activeIndex,
overIndex,
index
}) : null;
const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({
id,
items,
activeIndex,
overIndex
}) : index;
const activeId = active == null ? void 0 : active.id;
const previous = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)({
activeId,
items,
newIndex,
containerId
});
const itemsHaveChanged = items !== previous.current.items;
const shouldAnimateLayoutChanges = animateLayoutChanges({
active,
containerId,
isDragging,
isSorting,
id,
index,
items,
newIndex: previous.current.newIndex,
previousItems: previous.current.items,
previousContainerId: previous.current.containerId,
transition,
wasDragging: previous.current.activeId != null
});
const derivedTransform = useDerivedTransform({
disabled: !shouldAnimateLayoutChanges,
index,
node,
rect
});
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (isSorting && previous.current.newIndex !== newIndex) {
previous.current.newIndex = newIndex;
}
if (containerId !== previous.current.containerId) {
previous.current.containerId = containerId;
}
if (items !== previous.current.items) {
previous.current.items = items;
}
}, [isSorting, newIndex, containerId, items]);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if (activeId === previous.current.activeId) {
return;
}
if (activeId && !previous.current.activeId) {
previous.current.activeId = activeId;
return;
}
const timeoutId = setTimeout(() => {
previous.current.activeId = activeId;
}, 50);
return () => clearTimeout(timeoutId);
}, [activeId]);
return {
active,
activeIndex,
attributes,
data,
rect,
index,
newIndex,
items,
isOver,
isSorting,
isDragging,
listeners,
node,
overIndex,
over,
setNodeRef,
setActivatorNodeRef,
setDroppableNodeRef,
setDraggableNodeRef,
transform: derivedTransform != null ? derivedTransform : finalTransform,
transition: getTransition()
};
function getTransition() {
if ( // Temporarily disable transitions for a single frame to set up derived transforms
derivedTransform || // Or to prevent items jumping to back to their "new" position when items change
itemsHaveChanged && previous.current.newIndex === index) {
return disabledTransition;
}
if (shouldDisplaceDragSource && !(0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.isKeyboardEvent)(activatorEvent) || !transition) {
return undefined;
}
if (isSorting || shouldAnimateLayoutChanges) {
return _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.CSS.Transition.toString({ ...transition,
property: transitionProperty
});
}
return undefined;
}
}
function normalizeLocalDisabled(localDisabled, globalDisabled) {
var _localDisabled$dragga, _localDisabled$droppa;
if (typeof localDisabled === 'boolean') {
return {
draggable: localDisabled,
// Backwards compatibility
droppable: false
};
}
return {
draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,
droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable
};
}
function hasSortableData(entry) {
if (!entry) {
return false;
}
const data = entry.data.current;
if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {
return true;
}
return false;
}
const directions = [_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Down, _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Right, _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Up, _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Left];
const sortableKeyboardCoordinates = (event, _ref) => {
let {
context: {
active,
collisionRect,
droppableRects,
droppableContainers,
over,
scrollableAncestors
}
} = _ref;
if (directions.includes(event.code)) {
event.preventDefault();
if (!active || !collisionRect) {
return;
}
const filteredContainers = [];
droppableContainers.getEnabled().forEach(entry => {
if (!entry || entry != null && entry.disabled) {
return;
}
const rect = droppableRects.get(entry.id);
if (!rect) {
return;
}
switch (event.code) {
case _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Down:
if (collisionRect.top < rect.top) {
filteredContainers.push(entry);
}
break;
case _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Up:
if (collisionRect.top > rect.top) {
filteredContainers.push(entry);
}
break;
case _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Left:
if (collisionRect.left > rect.left) {
filteredContainers.push(entry);
}
break;
case _dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.KeyboardCode.Right:
if (collisionRect.left < rect.left) {
filteredContainers.push(entry);
}
break;
}
});
const collisions = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.closestCorners)({
active,
collisionRect: collisionRect,
droppableRects,
droppableContainers: filteredContainers,
pointerCoordinates: null
});
let closestId = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.getFirstCollision)(collisions, 'id');
if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {
closestId = collisions[1].id;
}
if (closestId != null) {
const activeDroppable = droppableContainers.get(active.id);
const newDroppable = droppableContainers.get(closestId);
const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;
const newNode = newDroppable == null ? void 0 : newDroppable.node.current;
if (newNode && newRect && activeDroppable && newDroppable) {
const newScrollAncestors = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_1__.getScrollableAncestors)(newNode);
const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);
const hasSameContainer = isSameContainer(activeDroppable, newDroppable);
const isAfterActive = isAfter(activeDroppable, newDroppable);
const offset = hasDifferentScrollAncestors || !hasSameContainer ? {
x: 0,
y: 0
} : {
x: isAfterActive ? collisionRect.width - newRect.width : 0,
y: isAfterActive ? collisionRect.height - newRect.height : 0
};
const rectCoordinates = {
x: newRect.left,
y: newRect.top
};
const newCoordinates = offset.x && offset.y ? rectCoordinates : (0,_dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_2__.subtract)(rectCoordinates, offset);
return newCoordinates;
}
}
}
return undefined;
};
function isSameContainer(a, b) {
if (!hasSortableData(a) || !hasSortableData(b)) {
return false;
}
return a.data.current.sortable.containerId === b.data.current.sortable.containerId;
}
function isAfter(a, b) {
if (!hasSortableData(a) || !hasSortableData(b)) {
return false;
}
if (!isSameContainer(a, b)) {
return false;
}
return a.data.current.sortable.index < b.data.current.sortable.index;
}
//# sourceMappingURL=sortable.esm.js.map
/***/ }),
/***/ "./node_modules/@dnd-kit/utilities/dist/utilities.esm.js":
/*!***************************************************************!*\
!*** ./node_modules/@dnd-kit/utilities/dist/utilities.esm.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ CSS: () => (/* binding */ CSS),
/* harmony export */ add: () => (/* binding */ add),
/* harmony export */ canUseDOM: () => (/* binding */ canUseDOM),
/* harmony export */ findFirstFocusableNode: () => (/* binding */ findFirstFocusableNode),
/* harmony export */ getEventCoordinates: () => (/* binding */ getEventCoordinates),
/* harmony export */ getOwnerDocument: () => (/* binding */ getOwnerDocument),
/* harmony export */ getWindow: () => (/* binding */ getWindow),
/* harmony export */ hasViewportRelativeCoordinates: () => (/* binding */ hasViewportRelativeCoordinates),
/* harmony export */ isDocument: () => (/* binding */ isDocument),
/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement),
/* harmony export */ isKeyboardEvent: () => (/* binding */ isKeyboardEvent),
/* harmony export */ isNode: () => (/* binding */ isNode),
/* harmony export */ isSVGElement: () => (/* binding */ isSVGElement),
/* harmony export */ isTouchEvent: () => (/* binding */ isTouchEvent),
/* harmony export */ isWindow: () => (/* binding */ isWindow),
/* harmony export */ subtract: () => (/* binding */ subtract),
/* harmony export */ useCombinedRefs: () => (/* binding */ useCombinedRefs),
/* harmony export */ useEvent: () => (/* binding */ useEvent),
/* harmony export */ useInterval: () => (/* binding */ useInterval),
/* harmony export */ useIsomorphicLayoutEffect: () => (/* binding */ useIsomorphicLayoutEffect),
/* harmony export */ useLatestValue: () => (/* binding */ useLatestValue),
/* harmony export */ useLazyMemo: () => (/* binding */ useLazyMemo),
/* harmony export */ useNodeRef: () => (/* binding */ useNodeRef),
/* harmony export */ usePrevious: () => (/* binding */ usePrevious),
/* harmony export */ useUniqueId: () => (/* binding */ useUniqueId)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
function useCombinedRefs() {
for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
refs[_key] = arguments[_key];
}
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => node => {
refs.forEach(ref => ref(node));
}, // eslint-disable-next-line react-hooks/exhaustive-deps
refs);
}
// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js
const canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';
function isWindow(element) {
const elementString = Object.prototype.toString.call(element);
return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]
elementString === '[object global]';
}
function isNode(node) {
return 'nodeType' in node;
}
function getWindow(target) {
var _target$ownerDocument, _target$ownerDocument2;
if (!target) {
return window;
}
if (isWindow(target)) {
return target;
}
if (!isNode(target)) {
return window;
}
return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;
}
function isDocument(node) {
const {
Document
} = getWindow(node);
return node instanceof Document;
}
function isHTMLElement(node) {
if (isWindow(node)) {
return false;
}
return node instanceof getWindow(node).HTMLElement;
}
function isSVGElement(node) {
return node instanceof getWindow(node).SVGElement;
}
function getOwnerDocument(target) {
if (!target) {
return document;
}
if (isWindow(target)) {
return target.document;
}
if (!isNode(target)) {
return document;
}
if (isDocument(target)) {
return target;
}
if (isHTMLElement(target) || isSVGElement(target)) {
return target.ownerDocument;
}
return document;
}
/**
* A hook that resolves to useEffect on the server and useLayoutEffect on the client
* @param callback {function} Callback function that is invoked when the dependencies of the hook change
*/
const useIsomorphicLayoutEffect = canUseDOM ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;
function useEvent(handler) {
const handlerRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(handler);
useIsomorphicLayoutEffect(() => {
handlerRef.current = handler;
});
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return handlerRef.current == null ? void 0 : handlerRef.current(...args);
}, []);
}
function useInterval() {
const intervalRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const set = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((listener, duration) => {
intervalRef.current = setInterval(listener, duration);
}, []);
const clear = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
if (intervalRef.current !== null) {
clearInterval(intervalRef.current);
intervalRef.current = null;
}
}, []);
return [set, clear];
}
function useLatestValue(value, dependencies) {
if (dependencies === void 0) {
dependencies = [value];
}
const valueRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(value);
useIsomorphicLayoutEffect(() => {
if (valueRef.current !== value) {
valueRef.current = value;
}
}, dependencies);
return valueRef;
}
function useLazyMemo(callback, dependencies) {
const valueRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
const newValue = callback(valueRef.current);
valueRef.current = newValue;
return newValue;
}, // eslint-disable-next-line react-hooks/exhaustive-deps
[...dependencies]);
}
function useNodeRef(onChange) {
const onChangeHandler = useEvent(onChange);
const node = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const setNodeRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(element => {
if (element !== node.current) {
onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);
}
node.current = element;
}, //eslint-disable-next-line
[]);
return [node, setNodeRef];
}
function usePrevious(value) {
const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
ref.current = value;
}, [value]);
return ref.current;
}
let ids = {};
function useUniqueId(prefix, value) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {
if (value) {
return value;
}
const id = ids[prefix] == null ? 0 : ids[prefix] + 1;
ids[prefix] = id;
return prefix + "-" + id;
}, [prefix, value]);
}
function createAdjustmentFn(modifier) {
return function (object) {
for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
adjustments[_key - 1] = arguments[_key];
}
return adjustments.reduce((accumulator, adjustment) => {
const entries = Object.entries(adjustment);
for (const [key, valueAdjustment] of entries) {
const value = accumulator[key];
if (value != null) {
accumulator[key] = value + modifier * valueAdjustment;
}
}
return accumulator;
}, { ...object
});
};
}
const add = /*#__PURE__*/createAdjustmentFn(1);
const subtract = /*#__PURE__*/createAdjustmentFn(-1);
function hasViewportRelativeCoordinates(event) {
return 'clientX' in event && 'clientY' in event;
}
function isKeyboardEvent(event) {
if (!event) {
return false;
}
const {
KeyboardEvent
} = getWindow(event.target);
return KeyboardEvent && event instanceof KeyboardEvent;
}
function isTouchEvent(event) {
if (!event) {
return false;
}
const {
TouchEvent
} = getWindow(event.target);
return TouchEvent && event instanceof TouchEvent;
}
/**
* Returns the normalized x and y coordinates for mouse and touch events.
*/
function getEventCoordinates(event) {
if (isTouchEvent(event)) {
if (event.touches && event.touches.length) {
const {
clientX: x,
clientY: y
} = event.touches[0];
return {
x,
y
};
} else if (event.changedTouches && event.changedTouches.length) {
const {
clientX: x,
clientY: y
} = event.changedTouches[0];
return {
x,
y
};
}
}
if (hasViewportRelativeCoordinates(event)) {
return {
x: event.clientX,
y: event.clientY
};
}
return null;
}
const CSS = /*#__PURE__*/Object.freeze({
Translate: {
toString(transform) {
if (!transform) {
return;
}
const {
x,
y
} = transform;
return "translate3d(" + (x ? Math.round(x) : 0) + "px, " + (y ? Math.round(y) : 0) + "px, 0)";
}
},
Scale: {
toString(transform) {
if (!transform) {
return;
}
const {
scaleX,
scaleY
} = transform;
return "scaleX(" + scaleX + ") scaleY(" + scaleY + ")";
}
},
Transform: {
toString(transform) {
if (!transform) {
return;
}
return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');
}
},
Transition: {
toString(_ref) {
let {
property,
duration,
easing
} = _ref;
return property + " " + duration + "ms " + easing;
}
}
});
const SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';
function findFirstFocusableNode(element) {
if (element.matches(SELECTOR)) {
return element;
}
return element.querySelector(SELECTOR);
}
//# sourceMappingURL=utilities.esm.js.map
/***/ }),
/***/ "./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js":
/*!***********************************************************************!*\
!*** ./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ createCache)
/* harmony export */ });
/* harmony import */ var _emotion_sheet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/sheet */ "./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js");
/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Tokenizer.js");
/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Utility.js");
/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Enum.js");
/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Serializer.js");
/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Middleware.js");
/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Parser.js");
/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/weak-memoize */ "./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js");
/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/memoize */ "./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js");
var identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {
var previous = 0;
var character = 0;
while (true) {
previous = character;
character = (0,stylis__WEBPACK_IMPORTED_MODULE_3__.peek)(); // &\f
if (previous === 38 && character === 12) {
points[index] = 1;
}
if ((0,stylis__WEBPACK_IMPORTED_MODULE_3__.token)(character)) {
break;
}
(0,stylis__WEBPACK_IMPORTED_MODULE_3__.next)();
}
return (0,stylis__WEBPACK_IMPORTED_MODULE_3__.slice)(begin, stylis__WEBPACK_IMPORTED_MODULE_3__.position);
};
var toRules = function toRules(parsed, points) {
// pretend we've started with a comma
var index = -1;
var character = 44;
do {
switch ((0,stylis__WEBPACK_IMPORTED_MODULE_3__.token)(character)) {
case 0:
// &\f
if (character === 38 && (0,stylis__WEBPACK_IMPORTED_MODULE_3__.peek)() === 12) {
// this is not 100% correct, we don't account for literal sequences here - like for example quoted strings
// stylis inserts \f after & to know when & where it should replace this sequence with the context selector
// and when it should just concatenate the outer and inner selectors
// it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here
points[index] = 1;
}
parsed[index] += identifierWithPointTracking(stylis__WEBPACK_IMPORTED_MODULE_3__.position - 1, points, index);
break;
case 2:
parsed[index] += (0,stylis__WEBPACK_IMPORTED_MODULE_3__.delimit)(character);
break;
case 4:
// comma
if (character === 44) {
// colon
parsed[++index] = (0,stylis__WEBPACK_IMPORTED_MODULE_3__.peek)() === 58 ? '&\f' : '';
points[index] = parsed[index].length;
break;
}
// fallthrough
default:
parsed[index] += (0,stylis__WEBPACK_IMPORTED_MODULE_4__.from)(character);
}
} while (character = (0,stylis__WEBPACK_IMPORTED_MODULE_3__.next)());
return parsed;
};
var getRules = function getRules(value, points) {
return (0,stylis__WEBPACK_IMPORTED_MODULE_3__.dealloc)(toRules((0,stylis__WEBPACK_IMPORTED_MODULE_3__.alloc)(value), points));
}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11
var fixedElements = /* #__PURE__ */new WeakMap();
var compat = function compat(element) {
if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo
// negative .length indicates that this rule has been already prefixed
element.length < 1) {
return;
}
var value = element.value,
parent = element.parent;
var isImplicitRule = element.column === parent.column && element.line === parent.line;
while (parent.type !== 'rule') {
parent = parent.parent;
if (!parent) return;
} // short-circuit for the simplest case
if (element.props.length === 1 && value.charCodeAt(0) !== 58
/* colon */
&& !fixedElements.get(parent)) {
return;
} // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)
// then the props has already been manipulated beforehand as they that array is shared between it and its "rule parent"
if (isImplicitRule) {
return;
}
fixedElements.set(element, true);
var points = [];
var rules = getRules(value, points);
var parentRules = parent.props;
for (var i = 0, k = 0; i < rules.length; i++) {
for (var j = 0; j < parentRules.length; j++, k++) {
element.props[k] = points[i] ? rules[i].replace(/&\f/g, parentRules[j]) : parentRules[j] + " " + rules[i];
}
}
};
var removeLabel = function removeLabel(element) {
if (element.type === 'decl') {
var value = element.value;
if ( // charcode for l
value.charCodeAt(0) === 108 && // charcode for b
value.charCodeAt(2) === 98) {
// this ignores label
element["return"] = '';
element.value = '';
}
}
};
var ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';
var isIgnoringComment = function isIgnoringComment(element) {
return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;
};
var createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {
return function (element, index, children) {
if (element.type !== 'rule' || cache.compat) return;
var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);
if (unsafePseudoClasses) {
var isNested = !!element.parent; // in nested rules comments become children of the "auto-inserted" rule and that's always the `element.parent`
//
// considering this input:
// .a {
// .b /* comm */ {}
// color: hotpink;
// }
// we get output corresponding to this:
// .a {
// & {
// /* comm */
// color: hotpink;
// }
// .b {}
// }
var commentContainer = isNested ? element.parent.children : // global rule at the root level
children;
for (var i = commentContainer.length - 1; i >= 0; i--) {
var node = commentContainer[i];
if (node.line < element.line) {
break;
} // it is quite weird but comments are *usually* put at `column: element.column - 1`
// so we seek *from the end* for the node that is earlier than the rule's `element` and check that
// this will also match inputs like this:
// .a {
// /* comm */
// .b {}
// }
//
// but that is fine
//
// it would be the easiest to change the placement of the comment to be the first child of the rule:
// .a {
// .b { /* comm */ }
// }
// with such inputs we wouldn't have to search for the comment at all
// TODO: consider changing this comment placement in the next major version
if (node.column < element.column) {
if (isIgnoringComment(node)) {
return;
}
break;
}
}
unsafePseudoClasses.forEach(function (unsafePseudoClass) {
console.error("The pseudo class \"" + unsafePseudoClass + "\" is potentially unsafe when doing server-side rendering. Try changing it to \"" + unsafePseudoClass.split('-child')[0] + "-of-type\".");
});
}
};
};
var isImportRule = function isImportRule(element) {
return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;
};
var isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {
for (var i = index - 1; i >= 0; i--) {
if (!isImportRule(children[i])) {
return true;
}
}
return false;
}; // use this to remove incorrect elements from further processing
// so they don't get handed to the `sheet` (or anything else)
// as that could potentially lead to additional logs which in turn could be overhelming to the user
var nullifyElement = function nullifyElement(element) {
element.type = '';
element.value = '';
element["return"] = '';
element.children = '';
element.props = '';
};
var incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {
if (!isImportRule(element)) {
return;
}
if (element.parent) {
console.error("`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.");
nullifyElement(element);
} else if (isPrependedWithRegularRules(index, children)) {
console.error("`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.");
nullifyElement(element);
}
};
/* eslint-disable no-fallthrough */
function prefix(value, length) {
switch ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.hash)(value, length)) {
// color-adjust
case 5103:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + 'print-' + value + value;
// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)
case 5737:
case 4201:
case 3177:
case 3433:
case 1641:
case 4457:
case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break
case 5572:
case 6356:
case 5844:
case 3191:
case 6645:
case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,
case 6391:
case 5879:
case 5623:
case 6135:
case 4599:
case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)
case 4215:
case 6389:
case 5109:
case 5365:
case 5621:
case 3829:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + value;
// appearance, user-select, transform, hyphens, text-size-adjust
case 5349:
case 4246:
case 4810:
case 6968:
case 2756:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MOZ + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + value + value;
// flex, flex-direction
case 6828:
case 4268:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + value + value;
// order
case 6165:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + 'flex-' + value + value;
// align-items
case 5187:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /(\w+).+(:[^]+)/, stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + 'box-$1$2' + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + 'flex-$1$2') + value;
// align-self
case 5443:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + 'flex-item-' + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /flex-|-self/, '') + value;
// align-content
case 4675:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + 'flex-line-pack' + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /align-content|flex-|-self/, '') + value;
// flex-shrink
case 5548:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, 'shrink', 'negative') + value;
// flex-basis
case 5292:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, 'basis', 'preferred-size') + value;
// flex-grow
case 6060:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + 'box-' + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, '-grow', '') + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, 'grow', 'positive') + value;
// transition
case 4554:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /([^-])(transform)/g, '$1' + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + '$2') + value;
// cursor
case 6187:
return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)((0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)((0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /(zoom-|grab)/, stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + '$1'), /(image-set)/, stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + '$1'), value, '') + value;
// background, background-image
case 5495:
case 3959:
return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /(image-set\([^]*)/, stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + '$1' + '$`$1');
// justify-content
case 4968:
return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)((0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /(.+:)(flex-)?(.*)/, stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + 'box-pack:$3' + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + value;
// (margin|padding)-inline-(start|end)
case 4095:
case 3583:
case 4068:
case 2532:
return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /(.+)-inline(.+)/, stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + '$1$2') + value;
// (min|max)?(width|height|inline-size|block-size)
case 8116:
case 7059:
case 5753:
case 5535:
case 5445:
case 5701:
case 4933:
case 4677:
case 5533:
case 5789:
case 5021:
case 4765:
// stretch, max-content, min-content, fill-available
if ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.strlen)(value) - 1 - length > 6) switch ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.charat)(value, length + 1)) {
// (m)ax-content, (m)in-content
case 109:
// -
if ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.charat)(value, length + 4) !== 45) break;
// (f)ill-available, (f)it-content
case 102:
return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /(.+:)(.+)-([^]+)/, '$1' + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + '$2-$3' + '$1' + stylis__WEBPACK_IMPORTED_MODULE_5__.MOZ + ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.charat)(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;
// (s)tretch
case 115:
return ~(0,stylis__WEBPACK_IMPORTED_MODULE_4__.indexof)(value, 'stretch') ? prefix((0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, 'stretch', 'fill-available'), length) + value : value;
}
break;
// position: sticky
case 4949:
// (s)ticky?
if ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.charat)(value, length + 1) !== 115) break;
// display: (flex|inline-flex)
case 6444:
switch ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.charat)(value, (0,stylis__WEBPACK_IMPORTED_MODULE_4__.strlen)(value) - 3 - (~(0,stylis__WEBPACK_IMPORTED_MODULE_4__.indexof)(value, '!important') && 10))) {
// stic(k)y
case 107:
return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, ':', ':' + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT) + value;
// (inline-)?fl(e)x
case 101:
return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.charat)(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + '$2$3' + '$1' + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + '$2box$3') + value;
}
break;
// writing-mode
case 5936:
switch ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.charat)(value, length + 11)) {
// vertical-l(r)
case 114:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /[svh]\w+-[tblr]{2}/, 'tb') + value;
// vertical-r(l)
case 108:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /[svh]\w+-[tblr]{2}/, 'tb-rl') + value;
// horizontal(-)tb
case 45:
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /[svh]\w+-[tblr]{2}/, 'lr') + value;
}
return stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_5__.MS + value + value;
}
return value;
}
var prefixer = function prefixer(element, index, children, callback) {
if (element.length > -1) if (!element["return"]) switch (element.type) {
case stylis__WEBPACK_IMPORTED_MODULE_5__.DECLARATION:
element["return"] = prefix(element.value, element.length);
break;
case stylis__WEBPACK_IMPORTED_MODULE_5__.KEYFRAMES:
return (0,stylis__WEBPACK_IMPORTED_MODULE_6__.serialize)([(0,stylis__WEBPACK_IMPORTED_MODULE_3__.copy)(element, {
value: (0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(element.value, '@', '@' + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT)
})], callback);
case stylis__WEBPACK_IMPORTED_MODULE_5__.RULESET:
if (element.length) return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.combine)(element.props, function (value) {
switch ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.match)(value, /(::plac\w+|:read-\w+)/)) {
// :read-(only|write)
case ':read-only':
case ':read-write':
return (0,stylis__WEBPACK_IMPORTED_MODULE_6__.serialize)([(0,stylis__WEBPACK_IMPORTED_MODULE_3__.copy)(element, {
props: [(0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /:(read-\w+)/, ':' + stylis__WEBPACK_IMPORTED_MODULE_5__.MOZ + '$1')]
})], callback);
// :placeholder
case '::placeholder':
return (0,stylis__WEBPACK_IMPORTED_MODULE_6__.serialize)([(0,stylis__WEBPACK_IMPORTED_MODULE_3__.copy)(element, {
props: [(0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /:(plac\w+)/, ':' + stylis__WEBPACK_IMPORTED_MODULE_5__.WEBKIT + 'input-$1')]
}), (0,stylis__WEBPACK_IMPORTED_MODULE_3__.copy)(element, {
props: [(0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /:(plac\w+)/, ':' + stylis__WEBPACK_IMPORTED_MODULE_5__.MOZ + '$1')]
}), (0,stylis__WEBPACK_IMPORTED_MODULE_3__.copy)(element, {
props: [(0,stylis__WEBPACK_IMPORTED_MODULE_4__.replace)(value, /:(plac\w+)/, stylis__WEBPACK_IMPORTED_MODULE_5__.MS + 'input-$1')]
})], callback);
}
return '';
});
}
};
var defaultStylisPlugins = [prefixer];
var createCache = function createCache(options) {
var key = options.key;
if ( true && !key) {
throw new Error("You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\n" + "If multiple caches share the same key they might \"fight\" for each other's style elements.");
}
if (key === 'css') {
var ssrStyles = document.querySelectorAll("style[data-emotion]:not([data-s])"); // get SSRed styles out of the way of React's hydration
// document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)
// note this very very intentionally targets all style elements regardless of the key to ensure
// that creating a cache works inside of render of a React component
Array.prototype.forEach.call(ssrStyles, function (node) {
// we want to only move elements which have a space in the data-emotion attribute value
// because that indicates that it is an Emotion 11 server-side rendered style elements
// while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector
// Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)
// so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles
// will not result in the Emotion 10 styles being destroyed
var dataEmotionAttribute = node.getAttribute('data-emotion');
if (dataEmotionAttribute.indexOf(' ') === -1) {
return;
}
document.head.appendChild(node);
node.setAttribute('data-s', '');
});
}
var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;
if (true) {
// $FlowFixMe
if (/[^a-z-]/.test(key)) {
throw new Error("Emotion key must only contain lower case alphabetical characters and - but \"" + key + "\" was passed");
}
}
var inserted = {};
var container;
var nodesToHydrate = [];
{
container = options.container || document.head;
Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which
// means that the style elements we're looking at are only Emotion 11 server-rendered style elements
document.querySelectorAll("style[data-emotion^=\"" + key + " \"]"), function (node) {
var attrib = node.getAttribute("data-emotion").split(' '); // $FlowFixMe
for (var i = 1; i < attrib.length; i++) {
inserted[attrib[i]] = true;
}
nodesToHydrate.push(node);
});
}
var _insert;
var omnipresentPlugins = [compat, removeLabel];
if (true) {
omnipresentPlugins.push(createUnsafeSelectorsAlarm({
get compat() {
return cache.compat;
}
}), incorrectImportAlarm);
}
{
var currentSheet;
var finalizingPlugins = [stylis__WEBPACK_IMPORTED_MODULE_6__.stringify, true ? function (element) {
if (!element.root) {
if (element["return"]) {
currentSheet.insert(element["return"]);
} else if (element.value && element.type !== stylis__WEBPACK_IMPORTED_MODULE_5__.COMMENT) {
// insert empty rule in non-production environments
// so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet
currentSheet.insert(element.value + "{}");
}
}
} : 0];
var serializer = (0,stylis__WEBPACK_IMPORTED_MODULE_7__.middleware)(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));
var stylis = function stylis(styles) {
return (0,stylis__WEBPACK_IMPORTED_MODULE_6__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_8__.compile)(styles), serializer);
};
_insert = function insert(selector, serialized, sheet, shouldCache) {
currentSheet = sheet;
if ( true && serialized.map !== undefined) {
currentSheet = {
insert: function insert(rule) {
sheet.insert(rule + serialized.map);
}
};
}
stylis(selector ? selector + "{" + serialized.styles + "}" : serialized.styles);
if (shouldCache) {
cache.inserted[serialized.name] = true;
}
};
}
var cache = {
key: key,
sheet: new _emotion_sheet__WEBPACK_IMPORTED_MODULE_0__.StyleSheet({
key: key,
container: container,
nonce: options.nonce,
speedy: options.speedy,
prepend: options.prepend,
insertionPoint: options.insertionPoint
}),
nonce: options.nonce,
inserted: inserted,
registered: {},
insert: _insert
};
cache.sheet.hydrate(nodesToHydrate);
return cache;
};
/***/ }),
/***/ "./node_modules/@emotion/hash/dist/emotion-hash.esm.js":
/*!*************************************************************!*\
!*** ./node_modules/@emotion/hash/dist/emotion-hash.esm.js ***!
\*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ murmur2)
/* harmony export */ });
/* eslint-disable */
// Inspired by https://github.com/garycourt/murmurhash-js
// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86
function murmur2(str) {
// 'm' and 'r' are mixing constants generated offline.
// They're not really 'magic', they just happen to work well.
// const m = 0x5bd1e995;
// const r = 24;
// Initialize the hash
var h = 0; // Mix 4 bytes at a time into the hash
var k,
i = 0,
len = str.length;
for (; len >= 4; ++i, len -= 4) {
k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;
k =
/* Math.imul(k, m): */
(k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);
k ^=
/* k >>> r: */
k >>> 24;
h =
/* Math.imul(k, m): */
(k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^
/* Math.imul(h, m): */
(h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
} // Handle the last few bytes of the input array
switch (len) {
case 3:
h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
case 2:
h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
case 1:
h ^= str.charCodeAt(i) & 0xff;
h =
/* Math.imul(h, m): */
(h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
} // Do a few final mixes of the hash to ensure the last few
// bytes are well-incorporated.
h ^= h >>> 13;
h =
/* Math.imul(h, m): */
(h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);
return ((h ^ h >>> 15) >>> 0).toString(36);
}
/***/ }),
/***/ "./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js":
/*!*******************************************************************!*\
!*** ./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ memoize)
/* harmony export */ });
function memoize(fn) {
var cache = Object.create(null);
return function (arg) {
if (cache[arg] === undefined) cache[arg] = fn(arg);
return cache[arg];
};
}
/***/ }),
/***/ "./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js":
/*!*****************************************************************************************************!*\
!*** ./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js ***!
\*****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ hoistNonReactStatics)
/* harmony export */ });
/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js");
/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__);
// this file isolates this package that is not tree-shakeable
// and if this module doesn't actually contain any logic of its own
// then Rollup just use 'hoist-non-react-statics' directly in other chunks
var hoistNonReactStatics = (function (targetComponent, sourceComponent) {
return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default()(targetComponent, sourceComponent);
});
/***/ }),
/***/ "./node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js":
/*!**********************************************************************************!*\
!*** ./node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js ***!
\**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ C: () => (/* binding */ CacheProvider),
/* harmony export */ E: () => (/* binding */ Emotion$1),
/* harmony export */ T: () => (/* binding */ ThemeContext),
/* harmony export */ _: () => (/* binding */ __unsafe_useEmotionCache),
/* harmony export */ a: () => (/* binding */ ThemeProvider),
/* harmony export */ b: () => (/* binding */ withTheme),
/* harmony export */ c: () => (/* binding */ createEmotionProps),
/* harmony export */ h: () => (/* binding */ hasOwnProperty),
/* harmony export */ i: () => (/* binding */ isBrowser),
/* harmony export */ u: () => (/* binding */ useTheme),
/* harmony export */ w: () => (/* binding */ withEmotionCache)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/cache */ "./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js");
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/weak-memoize */ "./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js");
/* harmony import */ var _isolated_hnrs_dist_emotion_react_isolated_hnrs_browser_esm_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js */ "./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js");
/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/utils */ "./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js");
/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/serialize */ "./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js");
/* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @emotion/use-insertion-effect-with-fallbacks */ "./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js");
var isBrowser = "object" !== 'undefined';
var hasOwnProperty = {}.hasOwnProperty;
var EmotionCacheContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case
// because this module is primarily intended for the browser and node
// but it's also required in react native and similar environments sometimes
// and we could have a special build just for that
// but this is much easier and the native packages
// might use a different theme context in the future anyway
typeof HTMLElement !== 'undefined' ? /* #__PURE__ */(0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__["default"])({
key: 'css'
}) : null);
if (true) {
EmotionCacheContext.displayName = 'EmotionCacheContext';
}
var CacheProvider = EmotionCacheContext.Provider;
var __unsafe_useEmotionCache = function useEmotionCache() {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);
};
var withEmotionCache = function withEmotionCache(func) {
// $FlowFixMe
return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {
// the cache will never be null in the browser
var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);
return func(props, cache, ref);
});
};
if (!isBrowser) {
withEmotionCache = function withEmotionCache(func) {
return function (props) {
var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);
if (cache === null) {
// yes, we're potentially creating this on every render
// it doesn't actually matter though since it's only on the server
// so there will only every be a single render
// that could change in the future because of suspense and etc. but for now,
// this works and i don't want to optimise for a future thing that we aren't sure about
cache = (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__["default"])({
key: 'css'
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(EmotionCacheContext.Provider, {
value: cache
}, func(props, cache));
} else {
return func(props, cache);
}
};
};
}
var ThemeContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext({});
if (true) {
ThemeContext.displayName = 'EmotionThemeContext';
}
var useTheme = function useTheme() {
return react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext);
};
var getTheme = function getTheme(outerTheme, theme) {
if (typeof theme === 'function') {
var mergedTheme = theme(outerTheme);
if ( true && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {
throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');
}
return mergedTheme;
}
if ( true && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {
throw new Error('[ThemeProvider] Please make your theme prop a plain object');
}
return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__["default"])({}, outerTheme, theme);
};
var createCacheWithTheme = /* #__PURE__ */(0,_emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__["default"])(function (outerTheme) {
return (0,_emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__["default"])(function (theme) {
return getTheme(outerTheme, theme);
});
});
var ThemeProvider = function ThemeProvider(props) {
var theme = react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext);
if (props.theme !== theme) {
theme = createCacheWithTheme(theme)(props.theme);
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ThemeContext.Provider, {
value: theme
}, props.children);
};
function withTheme(Component) {
var componentName = Component.displayName || Component.name || 'Component';
var render = function render(props, ref) {
var theme = react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__["default"])({
theme: theme,
ref: ref
}, props));
}; // $FlowFixMe
var WithTheme = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(render);
WithTheme.displayName = "WithTheme(" + componentName + ")";
return (0,_isolated_hnrs_dist_emotion_react_isolated_hnrs_browser_esm_js__WEBPACK_IMPORTED_MODULE_7__["default"])(WithTheme, Component);
}
var getLastPart = function getLastPart(functionName) {
// The match may be something like 'Object.createEmotionProps' or
// 'Loader.prototype.render'
var parts = functionName.split('.');
return parts[parts.length - 1];
};
var getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {
// V8
var match = /^\s+at\s+([A-Za-z0-9$.]+)\s/.exec(line);
if (match) return getLastPart(match[1]); // Safari / Firefox
match = /^([A-Za-z0-9$.]+)@/.exec(line);
if (match) return getLastPart(match[1]);
return undefined;
};
var internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS
// identifiers, thus we only need to replace what is a valid character for JS,
// but not for CSS.
var sanitizeIdentifier = function sanitizeIdentifier(identifier) {
return identifier.replace(/\$/g, '-');
};
var getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {
if (!stackTrace) return undefined;
var lines = stackTrace.split('\n');
for (var i = 0; i < lines.length; i++) {
var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just "Error"
if (!functionName) continue; // If we reach one of these, we have gone too far and should quit
if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an
// uppercase letter
if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);
}
return undefined;
};
var typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';
var labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';
var createEmotionProps = function createEmotionProps(type, props) {
if ( true && typeof props.css === 'string' && // check if there is a css declaration
props.css.indexOf(':') !== -1) {
throw new Error("Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`" + props.css + "`");
}
var newProps = {};
for (var key in props) {
if (hasOwnProperty.call(props, key)) {
newProps[key] = props[key];
}
}
newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when
// the label hasn't already been computed
if ( true && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {
var label = getLabelFromStackTrace(new Error().stack);
if (label) newProps[labelPropName] = label;
}
return newProps;
};
var Insertion = function Insertion(_ref) {
var cache = _ref.cache,
serialized = _ref.serialized,
isStringTag = _ref.isStringTag;
(0,_emotion_utils__WEBPACK_IMPORTED_MODULE_4__.registerStyles)(cache, serialized, isStringTag);
(0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_6__.useInsertionEffectAlwaysWithSyncFallback)(function () {
return (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_4__.insertStyles)(cache, serialized, isStringTag);
});
return null;
};
var Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {
var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works
// not passing the registered cache to serializeStyles because it would
// make certain babel optimisations not possible
if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {
cssProp = cache.registered[cssProp];
}
var WrappedComponent = props[typePropName];
var registeredStyles = [cssProp];
var className = '';
if (typeof props.className === 'string') {
className = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_4__.getRegisteredStyles)(cache.registered, registeredStyles, props.className);
} else if (props.className != null) {
className = props.className + " ";
}
var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_5__.serializeStyles)(registeredStyles, undefined, react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext));
if ( true && serialized.name.indexOf('-') === -1) {
var labelFromStack = props[labelPropName];
if (labelFromStack) {
serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_5__.serializeStyles)([serialized, 'label:' + labelFromStack + ';']);
}
}
className += cache.key + "-" + serialized.name;
var newProps = {};
for (var key in props) {
if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( false || key !== labelPropName)) {
newProps[key] = props[key];
}
}
newProps.ref = ref;
newProps.className = className;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Insertion, {
cache: cache,
serialized: serialized,
isStringTag: typeof WrappedComponent === 'string'
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(WrappedComponent, newProps));
});
if (true) {
Emotion.displayName = 'EmotionCssPropInternal';
}
var Emotion$1 = Emotion;
/***/ }),
/***/ "./node_modules/@emotion/react/dist/emotion-react.browser.esm.js":
/*!***********************************************************************!*\
!*** ./node_modules/@emotion/react/dist/emotion-react.browser.esm.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ CacheProvider: () => (/* reexport safe */ _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.C),
/* harmony export */ ClassNames: () => (/* binding */ ClassNames),
/* harmony export */ Global: () => (/* binding */ Global),
/* harmony export */ ThemeContext: () => (/* reexport safe */ _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.T),
/* harmony export */ ThemeProvider: () => (/* reexport safe */ _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.a),
/* harmony export */ __unsafe_useEmotionCache: () => (/* reexport safe */ _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__._),
/* harmony export */ createElement: () => (/* binding */ jsx),
/* harmony export */ css: () => (/* binding */ css),
/* harmony export */ jsx: () => (/* binding */ jsx),
/* harmony export */ keyframes: () => (/* binding */ keyframes),
/* harmony export */ useTheme: () => (/* reexport safe */ _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.u),
/* harmony export */ withEmotionCache: () => (/* reexport safe */ _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.w),
/* harmony export */ withTheme: () => (/* reexport safe */ _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.b)
/* harmony export */ });
/* harmony import */ var _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./emotion-element-c39617d8.browser.esm.js */ "./node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/utils */ "./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js");
/* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/use-insertion-effect-with-fallbacks */ "./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js");
/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/serialize */ "./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js");
/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/cache */ "./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js");
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @emotion/weak-memoize */ "./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js");
/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! hoist-non-react-statics */ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js");
/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_8__);
var pkg = {
name: "@emotion/react",
version: "11.11.3",
main: "dist/emotion-react.cjs.js",
module: "dist/emotion-react.esm.js",
browser: {
"./dist/emotion-react.esm.js": "./dist/emotion-react.browser.esm.js"
},
exports: {
".": {
module: {
worker: "./dist/emotion-react.worker.esm.js",
browser: "./dist/emotion-react.browser.esm.js",
"default": "./dist/emotion-react.esm.js"
},
"import": "./dist/emotion-react.cjs.mjs",
"default": "./dist/emotion-react.cjs.js"
},
"./jsx-runtime": {
module: {
worker: "./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js",
browser: "./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js",
"default": "./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js"
},
"import": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs",
"default": "./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js"
},
"./_isolated-hnrs": {
module: {
worker: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js",
browser: "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js",
"default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js"
},
"import": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs",
"default": "./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js"
},
"./jsx-dev-runtime": {
module: {
worker: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js",
browser: "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js",
"default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js"
},
"import": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs",
"default": "./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js"
},
"./package.json": "./package.json",
"./types/css-prop": "./types/css-prop.d.ts",
"./macro": {
types: {
"import": "./macro.d.mts",
"default": "./macro.d.ts"
},
"default": "./macro.js"
}
},
types: "types/index.d.ts",
files: [
"src",
"dist",
"jsx-runtime",
"jsx-dev-runtime",
"_isolated-hnrs",
"types/*.d.ts",
"macro.*"
],
sideEffects: false,
author: "Emotion Contributors",
license: "MIT",
scripts: {
"test:typescript": "dtslint types"
},
dependencies: {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.11.0",
"@emotion/cache": "^11.11.0",
"@emotion/serialize": "^1.1.3",
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
"@emotion/utils": "^1.2.1",
"@emotion/weak-memoize": "^0.3.1",
"hoist-non-react-statics": "^3.3.1"
},
peerDependencies: {
react: ">=16.8.0"
},
peerDependenciesMeta: {
"@types/react": {
optional: true
}
},
devDependencies: {
"@definitelytyped/dtslint": "0.0.112",
"@emotion/css": "11.11.2",
"@emotion/css-prettifier": "1.1.3",
"@emotion/server": "11.11.0",
"@emotion/styled": "11.11.0",
"html-tag-names": "^1.1.2",
react: "16.14.0",
"svg-tag-names": "^1.1.1",
typescript: "^4.5.5"
},
repository: "https://github.com/emotion-js/emotion/tree/main/packages/react",
publishConfig: {
access: "public"
},
"umd:main": "dist/emotion-react.umd.min.js",
preconstruct: {
entrypoints: [
"./index.js",
"./jsx-runtime.js",
"./jsx-dev-runtime.js",
"./_isolated-hnrs.js"
],
umdName: "emotionReact",
exports: {
envConditions: [
"browser",
"worker"
],
extra: {
"./types/css-prop": "./types/css-prop.d.ts",
"./macro": {
types: {
"import": "./macro.d.mts",
"default": "./macro.d.ts"
},
"default": "./macro.js"
}
}
}
}
};
var jsx = function jsx(type, props) {
var args = arguments;
if (props == null || !_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.h.call(props, 'css')) {
// $FlowFixMe
return react__WEBPACK_IMPORTED_MODULE_1__.createElement.apply(undefined, args);
}
var argsLength = args.length;
var createElementArgArray = new Array(argsLength);
createElementArgArray[0] = _emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.E;
createElementArgArray[1] = (0,_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.c)(type, props);
for (var i = 2; i < argsLength; i++) {
createElementArgArray[i] = args[i];
} // $FlowFixMe
return react__WEBPACK_IMPORTED_MODULE_1__.createElement.apply(null, createElementArgArray);
};
var warnedAboutCssPropForGlobal = false; // maintain place over rerenders.
// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild
// initial client-side render from SSR, use place of hydrating tag
var Global = /* #__PURE__ */(0,_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.w)(function (props, cache) {
if ( true && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is
// probably using the custom createElement which
// means it will be turned into a className prop
// $FlowFixMe I don't really want to add it to the type since it shouldn't be used
props.className || props.css)) {
console.error("It looks like you're using the css prop on Global, did you mean to use the styles prop instead?");
warnedAboutCssPropForGlobal = true;
}
var styles = props.styles;
var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_4__.serializeStyles)([styles], undefined, react__WEBPACK_IMPORTED_MODULE_1__.useContext(_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.T));
if (!_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.i) {
var _ref;
var serializedNames = serialized.name;
var serializedStyles = serialized.styles;
var next = serialized.next;
while (next !== undefined) {
serializedNames += ' ' + next.name;
serializedStyles += next.styles;
next = next.next;
}
var shouldCache = cache.compat === true;
var rules = cache.insert("", {
name: serializedNames,
styles: serializedStyles
}, cache.sheet, shouldCache);
if (shouldCache) {
return null;
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement("style", (_ref = {}, _ref["data-emotion"] = cache.key + "-global " + serializedNames, _ref.dangerouslySetInnerHTML = {
__html: rules
}, _ref.nonce = cache.sheet.nonce, _ref));
} // yes, i know these hooks are used conditionally
// but it is based on a constant that will never change at runtime
// it's effectively like having two implementations and switching them out
// so it's not actually breaking anything
var sheetRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef();
(0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__.useInsertionEffectWithLayoutFallback)(function () {
var key = cache.key + "-global"; // use case of https://github.com/emotion-js/emotion/issues/2675
var sheet = new cache.sheet.constructor({
key: key,
nonce: cache.sheet.nonce,
container: cache.sheet.container,
speedy: cache.sheet.isSpeedy
});
var rehydrating = false; // $FlowFixMe
var node = document.querySelector("style[data-emotion=\"" + key + " " + serialized.name + "\"]");
if (cache.sheet.tags.length) {
sheet.before = cache.sheet.tags[0];
}
if (node !== null) {
rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s
node.setAttribute('data-emotion', key);
sheet.hydrate([node]);
}
sheetRef.current = [sheet, rehydrating];
return function () {
sheet.flush();
};
}, [cache]);
(0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__.useInsertionEffectWithLayoutFallback)(function () {
var sheetRefCurrent = sheetRef.current;
var sheet = sheetRefCurrent[0],
rehydrating = sheetRefCurrent[1];
if (rehydrating) {
sheetRefCurrent[1] = false;
return;
}
if (serialized.next !== undefined) {
// insert keyframes
(0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.insertStyles)(cache, serialized.next, true);
}
if (sheet.tags.length) {
// if this doesn't exist then it will be null so the style element will be appended
var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;
sheet.before = element;
sheet.flush();
}
cache.insert("", serialized, sheet, false);
}, [cache, serialized.name]);
return null;
});
if (true) {
Global.displayName = 'EmotionGlobal';
}
function css() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_4__.serializeStyles)(args);
}
var keyframes = function keyframes() {
var insertable = css.apply(void 0, arguments);
var name = "animation-" + insertable.name; // $FlowFixMe
return {
name: name,
styles: "@keyframes " + name + "{" + insertable.styles + "}",
anim: 1,
toString: function toString() {
return "_EMO_" + this.name + "_" + this.styles + "_EMO_";
}
};
};
var classnames = function classnames(args) {
var len = args.length;
var i = 0;
var cls = '';
for (; i < len; i++) {
var arg = args[i];
if (arg == null) continue;
var toAdd = void 0;
switch (typeof arg) {
case 'boolean':
break;
case 'object':
{
if (Array.isArray(arg)) {
toAdd = classnames(arg);
} else {
if ( true && arg.styles !== undefined && arg.name !== undefined) {
console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');
}
toAdd = '';
for (var k in arg) {
if (arg[k] && k) {
toAdd && (toAdd += ' ');
toAdd += k;
}
}
}
break;
}
default:
{
toAdd = arg;
}
}
if (toAdd) {
cls && (cls += ' ');
cls += toAdd;
}
}
return cls;
};
function merge(registered, css, className) {
var registeredStyles = [];
var rawClassName = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.getRegisteredStyles)(registered, registeredStyles, className);
if (registeredStyles.length < 2) {
return className;
}
return rawClassName + css(registeredStyles);
}
var Insertion = function Insertion(_ref) {
var cache = _ref.cache,
serializedArr = _ref.serializedArr;
(0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__.useInsertionEffectAlwaysWithSyncFallback)(function () {
for (var i = 0; i < serializedArr.length; i++) {
(0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.insertStyles)(cache, serializedArr[i], false);
}
});
return null;
};
var ClassNames = /* #__PURE__ */(0,_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.w)(function (props, cache) {
var hasRendered = false;
var serializedArr = [];
var css = function css() {
if (hasRendered && "development" !== 'production') {
throw new Error('css can only be used during render');
}
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_4__.serializeStyles)(args, cache.registered);
serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`
(0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.registerStyles)(cache, serialized, false);
return cache.key + "-" + serialized.name;
};
var cx = function cx() {
if (hasRendered && "development" !== 'production') {
throw new Error('cx can only be used during render');
}
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return merge(cache.registered, css, classnames(args));
};
var content = {
css: css,
cx: cx,
theme: react__WEBPACK_IMPORTED_MODULE_1__.useContext(_emotion_element_c39617d8_browser_esm_js__WEBPACK_IMPORTED_MODULE_0__.T)
};
var ele = props.children(content);
hasRendered = true;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Insertion, {
cache: cache,
serializedArr: serializedArr
}), ele);
});
if (true) {
ClassNames.displayName = 'EmotionClassNames';
}
if (true) {
var isBrowser = "object" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked
var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';
if (isBrowser && !isTestEnv) {
// globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later
var globalContext = // $FlowIgnore
typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef
: isBrowser ? window : __webpack_require__.g;
var globalKey = "__EMOTION_REACT_" + pkg.version.split('.')[0] + "__";
if (globalContext[globalKey]) {
console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');
}
globalContext[globalKey] = true;
}
}
/***/ }),
/***/ "./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js":
/*!*******************************************************************************!*\
!*** ./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ serializeStyles: () => (/* binding */ serializeStyles)
/* harmony export */ });
/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/hash */ "./node_modules/@emotion/hash/dist/emotion-hash.esm.js");
/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/unitless */ "./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js");
/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/memoize */ "./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js");
var ILLEGAL_ESCAPE_SEQUENCE_ERROR = "You have illegal escape sequence in your template literal, most likely inside content's property value.\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \"content: '\\00d7';\" should become \"content: '\\\\00d7';\".\nYou can read more about this here:\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences";
var UNDEFINED_AS_OBJECT_KEY_ERROR = "You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).";
var hyphenateRegex = /[A-Z]|^ms/g;
var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;
var isCustomProperty = function isCustomProperty(property) {
return property.charCodeAt(1) === 45;
};
var isProcessableValue = function isProcessableValue(value) {
return value != null && typeof value !== 'boolean';
};
var processStyleName = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_2__["default"])(function (styleName) {
return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();
});
var processStyleValue = function processStyleValue(key, value) {
switch (key) {
case 'animation':
case 'animationName':
{
if (typeof value === 'string') {
return value.replace(animationRegex, function (match, p1, p2) {
cursor = {
name: p1,
styles: p2,
next: cursor
};
return p1;
});
}
}
}
if (_emotion_unitless__WEBPACK_IMPORTED_MODULE_1__["default"][key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {
return value + 'px';
}
return value;
};
if (true) {
var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\(|(no-)?(open|close)-quote/;
var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];
var oldProcessStyleValue = processStyleValue;
var msPattern = /^-ms-/;
var hyphenPattern = /-(.)/g;
var hyphenatedCache = {};
processStyleValue = function processStyleValue(key, value) {
if (key === 'content') {
if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '"' && value.charAt(0) !== "'")) {
throw new Error("You seem to be using a value for 'content' without quotes, try replacing it with `content: '\"" + value + "\"'`");
}
}
var processed = oldProcessStyleValue(key, value);
if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {
hyphenatedCache[key] = true;
console.error("Using kebab-case for css properties in objects is not supported. Did you mean " + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {
return _char.toUpperCase();
}) + "?");
}
return processed;
};
}
var noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';
function handleInterpolation(mergedProps, registered, interpolation) {
if (interpolation == null) {
return '';
}
if (interpolation.__emotion_styles !== undefined) {
if ( true && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {
throw new Error(noComponentSelectorMessage);
}
return interpolation;
}
switch (typeof interpolation) {
case 'boolean':
{
return '';
}
case 'object':
{
if (interpolation.anim === 1) {
cursor = {
name: interpolation.name,
styles: interpolation.styles,
next: cursor
};
return interpolation.name;
}
if (interpolation.styles !== undefined) {
var next = interpolation.next;
if (next !== undefined) {
// not the most efficient thing ever but this is a pretty rare case
// and there will be very few iterations of this generally
while (next !== undefined) {
cursor = {
name: next.name,
styles: next.styles,
next: cursor
};
next = next.next;
}
}
var styles = interpolation.styles + ";";
if ( true && interpolation.map !== undefined) {
styles += interpolation.map;
}
return styles;
}
return createStringFromObject(mergedProps, registered, interpolation);
}
case 'function':
{
if (mergedProps !== undefined) {
var previousCursor = cursor;
var result = interpolation(mergedProps);
cursor = previousCursor;
return handleInterpolation(mergedProps, registered, result);
} else if (true) {
console.error('Functions that are interpolated in css calls will be stringified.\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\n' + 'It can be called directly with props or interpolated in a styled call like this\n' + "let SomeComponent = styled('div')`${dynamicStyle}`");
}
break;
}
case 'string':
if (true) {
var matched = [];
var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {
var fakeVarName = "animation" + matched.length;
matched.push("const " + fakeVarName + " = keyframes`" + p2.replace(/^@keyframes animation-\w+/, '') + "`");
return "${" + fakeVarName + "}";
});
if (matched.length) {
console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\n\n' + 'Instead of doing this:\n\n' + [].concat(matched, ["`" + replaced + "`"]).join('\n') + '\n\nYou should wrap it with `css` like this:\n\n' + ("css`" + replaced + "`"));
}
}
break;
} // finalize string values (regular strings and functions interpolated into css calls)
if (registered == null) {
return interpolation;
}
var cached = registered[interpolation];
return cached !== undefined ? cached : interpolation;
}
function createStringFromObject(mergedProps, registered, obj) {
var string = '';
if (Array.isArray(obj)) {
for (var i = 0; i < obj.length; i++) {
string += handleInterpolation(mergedProps, registered, obj[i]) + ";";
}
} else {
for (var _key in obj) {
var value = obj[_key];
if (typeof value !== 'object') {
if (registered != null && registered[value] !== undefined) {
string += _key + "{" + registered[value] + "}";
} else if (isProcessableValue(value)) {
string += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";";
}
} else {
if (_key === 'NO_COMPONENT_SELECTOR' && "development" !== 'production') {
throw new Error(noComponentSelectorMessage);
}
if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {
for (var _i = 0; _i < value.length; _i++) {
if (isProcessableValue(value[_i])) {
string += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";";
}
}
} else {
var interpolated = handleInterpolation(mergedProps, registered, value);
switch (_key) {
case 'animation':
case 'animationName':
{
string += processStyleName(_key) + ":" + interpolated + ";";
break;
}
default:
{
if ( true && _key === 'undefined') {
console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);
}
string += _key + "{" + interpolated + "}";
}
}
}
}
}
}
return string;
}
var labelPattern = /label:\s*([^\s;\n{]+)\s*(;|$)/g;
var sourceMapPattern;
if (true) {
sourceMapPattern = /\/\*#\ssourceMappingURL=data:application\/json;\S+\s+\*\//g;
} // this is the cursor for keyframes
// keyframes are stored on the SerializedStyles object as a linked list
var cursor;
var serializeStyles = function serializeStyles(args, registered, mergedProps) {
if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {
return args[0];
}
var stringMode = true;
var styles = '';
cursor = undefined;
var strings = args[0];
if (strings == null || strings.raw === undefined) {
stringMode = false;
styles += handleInterpolation(mergedProps, registered, strings);
} else {
if ( true && strings[0] === undefined) {
console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);
}
styles += strings[0];
} // we start at 1 since we've already handled the first arg
for (var i = 1; i < args.length; i++) {
styles += handleInterpolation(mergedProps, registered, args[i]);
if (stringMode) {
if ( true && strings[i] === undefined) {
console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);
}
styles += strings[i];
}
}
var sourceMap;
if (true) {
styles = styles.replace(sourceMapPattern, function (match) {
sourceMap = match;
return '';
});
} // using a global regex with .exec is stateful so lastIndex has to be reset each time
labelPattern.lastIndex = 0;
var identifierName = '';
var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5
while ((match = labelPattern.exec(styles)) !== null) {
identifierName += '-' + // $FlowFixMe we know it's not null
match[1];
}
var name = (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_0__["default"])(styles) + identifierName;
if (true) {
// $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)
return {
name: name,
styles: styles,
map: sourceMap,
next: cursor,
toString: function toString() {
return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).";
}
};
}
return {
name: name,
styles: styles,
next: cursor
};
};
/***/ }),
/***/ "./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js":
/*!***********************************************************************!*\
!*** ./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ StyleSheet: () => (/* binding */ StyleSheet)
/* harmony export */ });
/*
Based off glamor's StyleSheet, thanks Sunil ❤️
high performance StyleSheet for css-in-js systems
- uses multiple style tags behind the scenes for millions of rules
- uses `insertRule` for appending in production for *much* faster performance
// usage
import { StyleSheet } from '@emotion/sheet'
let styleSheet = new StyleSheet({ key: '', container: document.head })
styleSheet.insert('#box { border: 1px solid red; }')
- appends a css rule into the stylesheet
styleSheet.flush()
- empties the stylesheet of all its contents
*/
// $FlowFixMe
function sheetForTag(tag) {
if (tag.sheet) {
// $FlowFixMe
return tag.sheet;
} // this weirdness brought to you by firefox
/* istanbul ignore next */
for (var i = 0; i < document.styleSheets.length; i++) {
if (document.styleSheets[i].ownerNode === tag) {
// $FlowFixMe
return document.styleSheets[i];
}
}
}
function createStyleElement(options) {
var tag = document.createElement('style');
tag.setAttribute('data-emotion', options.key);
if (options.nonce !== undefined) {
tag.setAttribute('nonce', options.nonce);
}
tag.appendChild(document.createTextNode(''));
tag.setAttribute('data-s', '');
return tag;
}
var StyleSheet = /*#__PURE__*/function () {
// Using Node instead of HTMLElement since container may be a ShadowRoot
function StyleSheet(options) {
var _this = this;
this._insertTag = function (tag) {
var before;
if (_this.tags.length === 0) {
if (_this.insertionPoint) {
before = _this.insertionPoint.nextSibling;
} else if (_this.prepend) {
before = _this.container.firstChild;
} else {
before = _this.before;
}
} else {
before = _this.tags[_this.tags.length - 1].nextSibling;
}
_this.container.insertBefore(tag, before);
_this.tags.push(tag);
};
this.isSpeedy = options.speedy === undefined ? "development" === 'production' : options.speedy;
this.tags = [];
this.ctr = 0;
this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets
this.key = options.key;
this.container = options.container;
this.prepend = options.prepend;
this.insertionPoint = options.insertionPoint;
this.before = null;
}
var _proto = StyleSheet.prototype;
_proto.hydrate = function hydrate(nodes) {
nodes.forEach(this._insertTag);
};
_proto.insert = function insert(rule) {
// the max length is how many rules we have per style tag, it's 65000 in speedy mode
// it's 1 in dev because we insert source maps that map a single rule to a location
// and you can only have one source map per style tag
if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {
this._insertTag(createStyleElement(this));
}
var tag = this.tags[this.tags.length - 1];
if (true) {
var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;
if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {
// this would only cause problem in speedy mode
// but we don't want enabling speedy to affect the observable behavior
// so we report this error at all times
console.error("You're attempting to insert the following rule:\n" + rule + '\n\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');
}
this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;
}
if (this.isSpeedy) {
var sheet = sheetForTag(tag);
try {
// this is the ultrafast version, works across browsers
// the big drawback is that the css won't be editable in devtools
sheet.insertRule(rule, sheet.cssRules.length);
} catch (e) {
if ( true && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {
console.error("There was a problem inserting the following rule: \"" + rule + "\"", e);
}
}
} else {
tag.appendChild(document.createTextNode(rule));
}
this.ctr++;
};
_proto.flush = function flush() {
// $FlowFixMe
this.tags.forEach(function (tag) {
return tag.parentNode && tag.parentNode.removeChild(tag);
});
this.tags = [];
this.ctr = 0;
if (true) {
this._alreadyInsertedOrderInsensitiveRule = false;
}
};
return StyleSheet;
}();
/***/ }),
/***/ "./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js":
/*!*********************************************************************!*\
!*** ./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ unitlessKeys)
/* harmony export */ });
var unitlessKeys = {
animationIterationCount: 1,
aspectRatio: 1,
borderImageOutset: 1,
borderImageSlice: 1,
borderImageWidth: 1,
boxFlex: 1,
boxFlexGroup: 1,
boxOrdinalGroup: 1,
columnCount: 1,
columns: 1,
flex: 1,
flexGrow: 1,
flexPositive: 1,
flexShrink: 1,
flexNegative: 1,
flexOrder: 1,
gridRow: 1,
gridRowEnd: 1,
gridRowSpan: 1,
gridRowStart: 1,
gridColumn: 1,
gridColumnEnd: 1,
gridColumnSpan: 1,
gridColumnStart: 1,
msGridRow: 1,
msGridRowSpan: 1,
msGridColumn: 1,
msGridColumnSpan: 1,
fontWeight: 1,
lineHeight: 1,
opacity: 1,
order: 1,
orphans: 1,
tabSize: 1,
widows: 1,
zIndex: 1,
zoom: 1,
WebkitLineClamp: 1,
// SVG-related properties
fillOpacity: 1,
floodOpacity: 1,
stopOpacity: 1,
strokeDasharray: 1,
strokeDashoffset: 1,
strokeMiterlimit: 1,
strokeOpacity: 1,
strokeWidth: 1
};
/***/ }),
/***/ "./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js":
/*!***********************************************************************************************************************************!*\
!*** ./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js ***!
\***********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useInsertionEffectAlwaysWithSyncFallback: () => (/* binding */ useInsertionEffectAlwaysWithSyncFallback),
/* harmony export */ useInsertionEffectWithLayoutFallback: () => (/* binding */ useInsertionEffectWithLayoutFallback)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
var syncFallback = function syncFallback(create) {
return create();
};
var useInsertionEffect = react__WEBPACK_IMPORTED_MODULE_0__['useInsertion' + 'Effect'] ? react__WEBPACK_IMPORTED_MODULE_0__['useInsertion' + 'Effect'] : false;
var useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;
var useInsertionEffectWithLayoutFallback = useInsertionEffect || react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect;
/***/ }),
/***/ "./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js":
/*!***********************************************************************!*\
!*** ./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js ***!
\***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ getRegisteredStyles: () => (/* binding */ getRegisteredStyles),
/* harmony export */ insertStyles: () => (/* binding */ insertStyles),
/* harmony export */ registerStyles: () => (/* binding */ registerStyles)
/* harmony export */ });
var isBrowser = "object" !== 'undefined';
function getRegisteredStyles(registered, registeredStyles, classNames) {
var rawClassName = '';
classNames.split(' ').forEach(function (className) {
if (registered[className] !== undefined) {
registeredStyles.push(registered[className] + ";");
} else {
rawClassName += className + " ";
}
});
return rawClassName;
}
var registerStyles = function registerStyles(cache, serialized, isStringTag) {
var className = cache.key + "-" + serialized.name;
if ( // we only need to add the styles to the registered cache if the
// class name could be used further down
// the tree but if it's a string tag, we know it won't
// so we don't have to add it to registered cache.
// this improves memory usage since we can avoid storing the whole style string
(isStringTag === false || // we need to always store it if we're in compat mode and
// in node since emotion-server relies on whether a style is in
// the registered cache to know whether a style is global or not
// also, note that this check will be dead code eliminated in the browser
isBrowser === false ) && cache.registered[className] === undefined) {
cache.registered[className] = serialized.styles;
}
};
var insertStyles = function insertStyles(cache, serialized, isStringTag) {
registerStyles(cache, serialized, isStringTag);
var className = cache.key + "-" + serialized.name;
if (cache.inserted[serialized.name] === undefined) {
var current = serialized;
do {
cache.insert(serialized === current ? "." + className : '', current, cache.sheet, true);
current = current.next;
} while (current !== undefined);
}
};
/***/ }),
/***/ "./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js":
/*!*****************************************************************************!*\
!*** ./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ weakMemoize)
/* harmony export */ });
var weakMemoize = function weakMemoize(func) {
// $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
var cache = new WeakMap();
return function (arg) {
if (cache.has(arg)) {
// $FlowFixMe
return cache.get(arg);
}
var ret = func(arg);
cache.set(arg, ret);
return ret;
};
};
/***/ }),
/***/ "./src/asyncMultiSelectControl.js":
/*!****************************************!*\
!*** ./src/asyncMultiSelectControl.js ***!
\****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeAsyncMultiselect: () => (/* binding */ BlogzeeAsyncMultiselect)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_select_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-select/async */ "./node_modules/react-select/async/dist/react-select-async.esm.js");
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
const {
useState,
useEffect
} = wp.element;
const {
customize
} = wp;
const {
__
} = wp.i18n;
const {
escapeHTML
} = wp.escapeHtml;
const BlogzeeAsyncMultiselect = props => {
const [value, setValue] = useState(props.value);
const [hasInteracted, setHasInteracted] = useState(false);
const [choices, setChoices] = useState([]);
const {
label,
description,
endpoint,
purpose: querySlug
} = customize.settings.controls[props.setting];
const HOMEURL = customize.settings.url.home;
const ROUTE = HOMEURL + 'wp-json/blogzee/v1/';
const API = ROUTE + endpoint + '?query_slug=' + querySlug;
/**
* Trigger the publish button in customizer &&
* save the data in database &&
* get initial choices
*/
useEffect(() => {
if (hasInteracted) {
let toExclude = value.map(current => {
return current.value;
});
let refinedApi = API + (value.length > 0 ? '&exclude=' + toExclude.join() : '');
fetch(refinedApi, {
method: 'GET',
headers: {
"X-WP-Nonce": window.wpApiSettings.nonce
}
}).then(result => result.json()).then(data => setChoices(data));
customize.value(props.setting)(value);
}
}, [value, hasInteracted]);
/**
* update the searched state
*
* @since 1.0.0
*/
const updateSearchedState = inputValue => {
let refinedApi = API + (inputValue ? '&s=' + inputValue : '');
let searched = fetch(refinedApi, {
method: 'GET',
headers: {
"X-WP-Nonce": window.wpApiSettings.nonce
}
}).then(result => result.json()).then(data => {
return data;
});
return searched;
};
/* Handle Focus */
const handleFocus = () => {
setHasInteracted(true);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react_select_async__WEBPACK_IMPORTED_MODULE_1__["default"], {
isMulti: true,
inputId: "blogzee-search-in-select",
isSearchable: true,
heading: label,
placeholder: __(escapeHTML('Type to search . . '), 'blogzee'),
value: value,
defaultOptions: choices,
loadOptions: updateSearchedState,
onChange: newMultiselect => setValue(newMultiselect),
onFocus: handleFocus
}));
};
/***/ }),
/***/ "./src/colorComponent.js":
/*!*******************************!*\
!*** ./src/colorComponent.js ***!
\*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeColorComponent: () => (/* binding */ BlogzeeColorComponent),
/* harmony export */ BlogzeeReusableColorComponent: () => (/* binding */ BlogzeeReusableColorComponent)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
const {
ColorPicker,
ColorIndicator,
Dropdown,
Tooltip,
TabPanel,
GradientPicker,
Button,
ResponsiveWrapper,
SelectControl,
ButtonGroup,
Dashicon
} = wp.components;
const {
useState,
useEffect,
useMemo
} = wp.element;
const {
escapeHTML
} = wp.escapeHtml;
const {
MediaUpload
} = wp.blockEditor;
const {
__
} = wp.i18n;
const {
customize
} = wp;
function BlogzeeColorComponent(props) {
const [value, setValue] = useState(props.value);
const {
label,
description,
involve,
hover
} = customize.settings.controls[props.setting];
useEffect(() => {
customize.value(props.setting)(value);
}, [value]);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeReusableColorComponent, {
label: label,
description: description,
value: value,
menus: involve,
hover: hover,
setValue: setValue
}));
}
const BlogzeeReusableColorComponent = props => {
const {
label,
description,
value,
menus,
hover,
setValue
} = props;
let tabMenus = [];
if (menus.includes('solid')) tabMenus = [...tabMenus, {
name: 'solid',
title: __('Solid', 'blogzee'),
className: 'tab-solid',
disabled: menus.length <= 1
}];
if (menus.includes('gradient')) tabMenus = [...tabMenus, {
name: 'gradient',
title: __('Gradient', 'blogzee'),
className: 'tab-gradient',
disabled: menus.length <= 1
}];
if (menus.includes('image') && !hover) tabMenus = [...tabMenus, {
name: 'image',
title: __('Image', 'blogzee'),
className: 'tab-image',
disabled: menus.length <= 1
}];
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_1__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-wrap"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(DropDownComponent, {
setValue: setValue,
value: value,
menus: tabMenus,
hover: hover
}), hover && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(DropDownComponent, {
setValue: setValue,
value: value,
menus: tabMenus,
hover: true,
isInitial: false
})));
};
BlogzeeReusableColorComponent.defaultProps = {
label: '',
description: '',
value: '',
menus: '',
hover: '',
setValue: function () {}
};
/**
* Solid color component
*
* @since 1.0.0
*/
const SolidColorComponent = props => {
const {
color,
setColor,
variable
} = props;
const presetSetterFunction = presetColor => {
setColor({
type: 'solid',
solid: presetColor
});
};
/**
* Handle on change event
*
* @since 1.0.0
*/
const handleOnChange = data => {
setColor({
type: 'solid',
solid: data
});
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "preset-colors"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("ul", {
className: "preset-colors-inner"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_1__.PresetComponent, {
handlePresetClick: presetSetterFunction,
color: variable
}))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ColorPicker, {
color: color,
onChange: handleOnChange,
enableAlpha: true
}));
};
/**
* Gradient Color Component
*
* @since 1.0.0
*/
const GradientColor = props => {
const {
color,
setColor,
variable
} = props;
const presetSetterFunction = presetColor => {
setColor({
type: 'gradient',
gradient: presetColor
});
};
/**
* Handle on change event
*
* @since 1.0.0
*/
const handleOnChange = data => {
setColor({
type: 'gradient',
gradient: data
});
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "preset-colors"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("ul", {
className: "preset-colors-inner"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_1__.PresetComponent, {
handlePresetClick: presetSetterFunction,
presetType: "gradient",
color: variable
}))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(GradientPicker, {
value: color,
onChange: data => handleOnChange(data),
__nextHasNoMargin: true,
gradients: []
}));
};
/**
* Color Indicator and Dropdown component
*
* @since 1.0.0
*/
const DropDownComponent = props => {
const {
value,
menus,
hover,
isInitial,
...rest
} = props;
const [imageSettings, setImageSettings] = useState(false);
const currentType = hover ? value[isInitial ? 'initial' : 'hover'].type : value.type;
const currentColor = hover ? value[isInitial ? 'initial' : 'hover'][currentType] : value[currentType];
const {
isPreset,
getColorsAndVariables
} = (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.useBlogzeeColorPresets)(currentColor);
const allVariables = getColorsAndVariables();
const activeColor = allVariables[currentColor] === undefined ? currentColor : allVariables[currentColor];
const toolTipLabel = useMemo(() => {
if (hover) {
if (isInitial) {
return "Initial";
} else {
return "Hover";
}
} else {
switch (value.type) {
case 'solid':
return 'Solid';
break;
case 'gradient':
return 'Gradient';
break;
case 'image':
return 'Image';
break;
}
}
}, [value]);
/**
* Update value state
*
* @since 1.0.0
*/
const updateValueState = updatedValue => {
if (hover) {
rest.setValue({
...value,
[isInitial ? 'initial' : 'hover']: updatedValue
});
} else {
rest.setValue(updatedValue);
}
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dropdown, {
popoverProps: {
resize: false,
noArrow: false,
flip: true,
variant: "unstyled",
placement: 'bottom-end'
},
contentClassName: "blogzee-color-control-popover",
renderToggle: ({
isOpen,
onToggle
}) =>
// isInitial ? 'Initial' : 'Hover'
(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML(toolTipLabel), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "color-indicator-wrapper " + (isPreset ? ' preset-isactive' : '')
}, currentType !== 'image' ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ColorIndicator, {
className: currentColor === null && "null-color",
colorValue: activeColor,
onClick: onToggle,
"aria-expanded": isOpen
}) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "format-image",
className: "null-color type--image",
onClick: onToggle,
"aria-expanded": isOpen
}))),
renderContent: () => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TabPanel, {
className: "blogzee-group-tab-panel",
activeClass: "active-tab",
initialTabName: currentType,
tabs: menus
}, tab => {
switch (tab.name) {
case "solid":
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(SolidColorComponent, {
color: activeColor,
variable: currentColor,
setColor: updateValueState
});
break;
case "gradient":
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(GradientColor, {
color: activeColor,
variable: currentColor,
setColor: updateValueState
});
break;
case "image":
if (value.image === undefined) {
value.image = {
id: 0,
url: ''
};
}
const {
position = 'left top',
attachment = 'fixed',
size = 'auto',
repeat = 'no-repeat'
} = value;
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "editor-post-featured-image"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(MediaUpload, {
onSelect: media => updateValueState({
type: 'image',
image: {
id: media.id,
url: media.url
}
}),
value: value.image.url,
allowedTypes: ['image'],
render: ({
open
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
className: value.image.id === 0 ? 'editor-post-featured-image__toggle' : 'editor-post-featured-image__preview',
onClick: open
}, value.image.id == 0 && __('Choose an image', 'blogzee'), value.image !== undefined && value.image.id !== 0 && value.image.url !== '' && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ResponsiveWrapper, {
naturalWidth: 200,
naturalHeight: 200
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
src: value.image.url,
loading: "lazy"
})))
}), value.image.id !== 0 && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(MediaUpload, {
title: __('Replace image', 'blogzee'),
value: value.image.id,
onSelect: media => updateValueState({
type: 'image',
image: {
id: media.id,
url: media.url
}
}),
allowedTypes: ['image'],
render: ({
open
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
onClick: open,
variant: "secondary",
isLarge: true
}, __('Replace image', 'blogzee'))
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
onClick: () => updateValueState({
type: 'image',
image: {
id: 0,
url: ''
}
}),
isLink: true,
isDestructive: true
}, __('Remove image', 'blogzee')))), value.image.id !== 0 && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "more-settings"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: "tertiary",
isSmall: true,
iconPosition: "right",
icon: imageSettings ? 'arrow-up-alt' : 'arrow-down-alt',
onClick: () => setImageSettings(!imageSettings)
}, imageSettings ? __('Show less settings!', 'blogzee') : __('Show more settings!', 'blogzee')), imageSettings && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(SelectControl, {
label: __('Background Position', 'blogzee'),
value: position,
options: [{
label: 'Left Top',
value: 'left top'
}, {
label: 'Left Center',
value: 'left center'
}, {
label: 'Left Bottom',
value: 'left bottom-end'
}, {
label: 'Right Top',
value: 'right top'
}, {
label: 'Right Center',
value: 'right center'
}, {
label: 'Right Bottom',
value: 'right bottom-end'
}, {
label: 'Center Top',
value: 'center top'
}, {
label: 'Center Center',
value: 'center center'
}, {
label: 'Center Bottom',
value: 'center bottom-end'
}],
onChange: newPosition => updateValueState({
...value,
position: newPosition
})
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(SelectControl, {
label: __('Background Repeat', 'blogzee'),
value: repeat,
options: [{
label: 'No Repeat',
value: 'no-repeat'
}, {
label: 'Repeat All',
value: 'repeat'
}, {
label: 'Repeat Horizontally',
value: 'repeat-x'
}, {
label: 'Repeat Vertically',
value: 'repeat-y'
}],
onChange: newRepeat => updateValueState({
...value,
repeat: newRepeat
})
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "components-truncate components-text components-input-control__label"
}, __('Background Attachment', 'blogzee')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ButtonGroup, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: attachment == 'fixed' ? 'primary' : 'secondary',
onClick: () => updateValueState({
...value,
attachment: 'fixed'
})
}, __('Fixed', 'blogzee')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: attachment == 'scroll' ? 'primary' : 'secondary',
onClick: () => updateValueState({
...value,
attachment: 'scroll'
})
}, __('Scroll', 'blogzee')))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "components-truncate components-text components-input-control__label"
}, __('Background Size', 'blogzee')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ButtonGroup, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: size == 'auto' ? 'primary' : 'secondary',
onClick: () => updateValueState({
...value,
size: 'auto'
})
}, __('Auto', 'blogzee')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: size == 'cover' ? 'primary' : 'secondary',
onClick: () => updateValueState({
...value,
size: 'cover'
})
}, __('Cover', 'blogzee')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: size == 'contain' ? 'primary' : 'secondary',
onClick: () => updateValueState({
...value,
size: 'contain'
})
}, __('Contain', 'blogzee')))))));
break;
}
}))
});
};
DropDownComponent.defaultProps = {
hover: false,
isInitial: true
};
/***/ }),
/***/ "./src/component-function.js":
/*!***********************************!*\
!*** ./src/component-function.js ***!
\***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeControlHeader: () => (/* binding */ BlogzeeControlHeader),
/* harmony export */ BlogzeeGetResponsiveIcons: () => (/* binding */ BlogzeeGetResponsiveIcons),
/* harmony export */ PresetComponent: () => (/* binding */ PresetComponent),
/* harmony export */ blogzeeBackButtonClick: () => (/* binding */ blogzeeBackButtonClick),
/* harmony export */ blogzeeGenerateStyleTag: () => (/* binding */ blogzeeGenerateStyleTag),
/* harmony export */ blogzeeReflectResponsiveInControl: () => (/* binding */ blogzeeReflectResponsiveInControl),
/* harmony export */ blogzeeReflectResponsiveInCustomizer: () => (/* binding */ blogzeeReflectResponsiveInCustomizer),
/* harmony export */ convertNumbertoCardinalString: () => (/* binding */ convertNumbertoCardinalString),
/* harmony export */ convertNumbertoOrdinalString: () => (/* binding */ convertNumbertoOrdinalString),
/* harmony export */ useBlogzeeColorPresets: () => (/* binding */ useBlogzeeColorPresets)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ "./src/store.js");
const {
__
} = wp.i18n;
const {
escapeHTML
} = wp.escapeHtml;
const {
useSelect
} = wp.data;
const {
Tooltip,
Dashicon
} = wp.components;
const {
customize
} = wp;
/**
* preset list component
*
* @since 1.0.0
*/
const PresetComponent = ({
handlePresetClick,
presetType,
color
}) => {
const {
getColorsAndVariables,
getSolidOrGradient
} = useBlogzeeColorPresets();
const activePreset = Object.entries(getSolidOrGradient(presetType));
const allPresets = getColorsAndVariables();
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, activePreset.map(([_thisColor]) => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "color-indicator-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: _thisColor === color && 'active',
style: {
background: allPresets[_thisColor]
},
onClick: () => handlePresetClick(_thisColor)
}));
}));
};
PresetComponent.defaultProps = {
presetType: 'solid'
};
/**
* preset list component
*
* @since 1.0.0
*/
const BlogzeeControlHeader = ({
label,
description,
children
}) => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "control-title"
}, label && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "customize-control-title"
}, label), description && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "customize-control-description"
}, description), children !== undefined && children);
};
/**
* Generate style tag with control id as style id
*
* @since 1.0.0
*/
const blogzeeGenerateStyleTag = (id, cssCode) => {
let style = document.getElementById(id + '-preset');
if (!style) {
style = document.createElement('style');
style.id = id + '-preset';
style.type = 'text/css';
style.appendChild(document.createTextNode(':root{' + cssCode + '}'));
// Append the style element to the head of the document
document.head.appendChild(style);
} else {
style.textContent = '';
style.appendChild(document.createTextNode(':root{' + cssCode + '}'));
}
};
/**
* Trigger responsive buttons
*
* @since 1.0.0
*/
const blogzeeReflectResponsiveInControl = stateToSet => {
const resFooter = document.getElementById("customize-footer-actions");
const resFooterClass = resFooter.getElementsByClassName("devices-wrapper");
const buttons = resFooterClass[0].getElementsByTagName("button");
for (const button of buttons) {
button.addEventListener("click", function () {
const currentDevice = button.getAttribute("data-device");
stateToSet(currentDevice == 'mobile' ? 'smartphone' : currentDevice);
});
}
};
/**
* Trigger responsive buttons
*
* @since 1.0.0
*/
const blogzeeReflectResponsiveInCustomizer = (stateToSet, responsive) => {
stateToSet(responsive);
let footer = document.getElementById('customize-footer-actions');
if (responsive == 'desktop') footer.getElementsByClassName('preview-desktop')[0].click();
if (responsive == 'tablet') footer.getElementsByClassName('preview-tablet')[0].click();
if (responsive == 'smartphone') footer.getElementsByClassName('preview-mobile')[0].click();
};
/**
* Get responsive icons
*
* @since 1.0.0
*/
const BlogzeeGetResponsiveIcons = ({
responsive,
stateToSet,
children
}) => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "responsive-icons"
}, children !== undefined && children, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Desktop'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: `responsive-trigger ${responsive == 'desktop' && "isActive"}`,
icon: "desktop",
onClick: () => stateToSet("desktop")
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Tablet'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: `responsive-trigger ${responsive == 'tablet' && "isActive"}`,
icon: "tablet",
onClick: () => stateToSet("tablet")
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Mobile'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: `responsive-trigger ${responsive == 'smartphone' && "isActive"}`,
icon: "smartphone",
onClick: () => stateToSet("smartphone")
})));
};
/**
* Blogzee custom hook for presets
*
* @since 1.0.0
*/
const useBlogzeeColorPresets = color => {
// Data from global state
const themeColor = useSelect(select => {
return select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getThemeColor();
}, []);
const gradientThemeColor = useSelect(select => {
return select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getGradientThemeColor();
}, []);
const solidPresets = useSelect(select => {
return select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getSolidColorPreset();
}, []);
const gradientPresets = useSelect(select => {
return select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getGradientColorPreset();
}, []);
// states
const [isPreset, setIsPreset] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
if ([color] in getColorsAndVariables()) {
setIsPreset(true);
} else {
setIsPreset(false);
}
}, [color]);
/**
* Get color via variable
*
* @since 1.0.0
*/
const getColorsAndVariables = () => {
let collection = {
'--blogzee-global-preset-theme-color': themeColor,
'--blogzee-global-preset-gradient-theme-color': gradientThemeColor
};
solidPresets.map((color, index) => {
let count = index + 1;
collection = {
...collection,
['--blogzee-global-preset-color-' + count]: color
};
});
gradientPresets.map((color, index) => {
let count = index + 1;
collection = {
...collection,
['--blogzee-global-preset-gradient-' + count]: color
};
});
return collection;
};
/**
* Get solid or gradient variables and colors
*
* @since 1.0.0
*/
const getSolidOrGradient = blend => {
let collection;
if (blend === 'gradient') {
collection = {
'--blogzee-global-preset-gradient-theme-color': gradientThemeColor
};
gradientPresets.map((color, index) => {
let count = index + 1;
collection = {
...collection,
['--blogzee-global-preset-gradient-' + count]: color
};
});
} else {
collection = {
'--blogzee-global-preset-theme-color': themeColor
};
solidPresets.map((color, index) => {
let count = index + 1;
collection = {
...collection,
['--blogzee-global-preset-color-' + count]: color
};
});
}
return collection;
};
return {
isPreset,
getColorsAndVariables,
getSolidOrGradient
};
};
/**
* convert number to ordinal string
*
* @since 1.0.0
* @return string
*/
const convertNumbertoOrdinalString = number => {
let string;
switch (number) {
case 2:
string = 'second';
break;
case 3:
string = 'third';
break;
case 4:
string = 'fourth';
break;
case 5:
string = 'fifth';
break;
case 6:
string = 'sixth';
break;
case 7:
string = 'seventh';
break;
case 8:
string = 'eighth';
break;
case 9:
string = 'ninth';
break;
case 10:
string = 'tenth';
break;
default:
string = 'first';
break;
}
return string;
};
/**
* convert number to cardinal string
*
* @since 1.0.0
* @return string
*/
const convertNumbertoCardinalString = number => {
let string;
switch (number) {
case 2:
string = 'two';
break;
case 3:
string = 'three';
break;
case 4:
string = 'four';
break;
case 5:
string = 'five';
break;
case 6:
string = 'six';
break;
case 7:
string = 'seven';
break;
case 8:
string = 'eight';
break;
case 9:
string = 'nine';
break;
case 10:
string = 'ten';
break;
default:
string = 'one';
break;
}
return string;
};
/**
* Detect Back Button click in customizer
*
* @since 1.0.0
*/
const blogzeeBackButtonClick = (home, sections, resetWidget, resetRows) => {
if (sections.length > 0) {
sections.map(section => {
const sectionInstance = customize.section(section);
const sectionContainer = sectionInstance.contentContainer;
const backButton = sectionContainer[0].querySelector('.section-meta .customize-section-back');
backButton.addEventListener("click", function (event) {
event.preventDefault();
event.stopPropagation();
const sectionInstance = customize.section(home);
const sectionContent = sectionInstance.contentContainer;
if (sectionContent[0].classList.contains('active-builder-setting')) sectionInstance.expand();
resetWidget(null);
resetRows(null);
});
});
}
};
/***/ }),
/***/ "./src/headerBuilder.js":
/*!******************************!*\
!*** ./src/headerBuilder.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeHeaderBuilder: () => (/* binding */ BlogzeeHeaderBuilder),
/* harmony export */ Draggable: () => (/* binding */ Draggable),
/* harmony export */ Droppable: () => (/* binding */ Droppable),
/* harmony export */ Footer: () => (/* binding */ Footer),
/* harmony export */ HeaderItems: () => (/* binding */ HeaderItems),
/* harmony export */ RowSettings: () => (/* binding */ RowSettings)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
/* harmony import */ var _dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @dnd-kit/core */ "./node_modules/@dnd-kit/core/dist/core.esm.js");
/* harmony import */ var _dnd_kit_sortable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dnd-kit/sortable */ "./node_modules/@dnd-kit/sortable/dist/sortable.esm.js");
/* harmony import */ var _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dnd-kit/utilities */ "./node_modules/@dnd-kit/utilities/dist/utilities.esm.js");
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./store */ "./src/store.js");
const {
Dropdown,
Dashicon,
Button
} = wp.components;
const {
useState,
useEffect,
useMemo
} = wp.element;
const {
escapeHTML
} = wp.escapeHtml;
const {
__
} = wp.i18n;
const {
customize
} = wp;
const {
useSelect,
useDispatch
} = wp.data;
const BlogzeeHeaderBuilder = props => {
const [value, setValue] = useState(props.value);
const [activeContainer, setActiveContainer] = useState(null);
const {
label,
description,
widgets,
placement,
builder_settings_section: builderSettingsSection
} = customize.settings.controls[props.setting];
const [isBuilderHidden, setIsBuilderHidden] = useState();
const [activeWidget, setActiveWidget] = useState(null);
const [activeIndicator, setActiveIndicator] = useState(null);
const [responsive, setResponsive] = useState('desktop');
const {
setHeaderBuilderReflector,
setFooterBuilderReflector
} = useDispatch(_store__WEBPACK_IMPORTED_MODULE_5__.store);
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_1__.blogzeeReflectResponsiveInControl)(setResponsive);
}, []);
useEffect(() => {
const widgetsSection = Object.values(widgets).map(widget => widget.section);
const rowCount = [1, 2, 3];
const rowSections = rowCount.map(row => placement + '_' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(row) + '_row');
(0,_component_function__WEBPACK_IMPORTED_MODULE_1__.blogzeeBackButtonClick)(builderSettingsSection, [...rowSections, ...widgetsSection], setActiveWidget, setActiveIndicator);
}, []);
/* A structured value to render out HTML div structure */
const structuredValue = useMemo(() => {
return Object.entries(value).reduce((newValue, [containerID, containerValue]) => {
const [row] = containerID; // Split the key into two parts
if (!newValue[row]) {
newValue[row] = {}; // Initialize the row level if it doesn't exist
}
newValue[row] = {
...newValue[row],
[containerID]: containerValue
}; // Assign the value to the column level
return newValue;
}, {});
}, [value]);
/* An array that contains the values from the column count controls */
const columnCounts = useSelect(select => {
return {
/* Header Count */
"header_0": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getHeaderFirstRow(),
"header_1": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getHeaderSecondRow(),
"header_2": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getHeaderThirdRow(),
/* Footer Count */
"footer_0": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getFooterFirstRow(),
"footer_1": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getFooterSecondRow(),
"footer_2": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getFooterThirdRow()
};
}, []);
/* An array that contains the values from the column layout controls */
const columnLayouts = useSelect(select => {
return {
/* Header Layout */
"header_0": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getHeaderFirstRowLayout(),
"header_1": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getHeaderSecondRowLayout(),
"header_2": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getHeaderThirdRowLayout(),
/* Footer Layout */
"footer_0": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getFooterFirstRowLayout(),
"footer_1": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getFooterSecondRowLayout(),
"footer_2": select(_store__WEBPACK_IMPORTED_MODULE_5__.store).getFooterThirdRowLayout()
};
}, []);
/* Save the changes */
useEffect(() => {
customize.value(props.setting)(value);
switch (placement) {
/* Header Count */
case 'header':
setHeaderBuilderReflector(structuredValue);
break;
case 'footer':
setFooterBuilderReflector(structuredValue);
break;
}
}, [value]);
/* To prevent events from being swallowed */
const sensors = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.useSensors)((0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.useSensor)(_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.MouseSensor, {
// Require the mouse to move by 3 pixels before activating
activationConstraint: {
distance: 3
}
}));
/**
* An array that has all the widgets that are currently being used
*
* @since 1.0.0
*/
const filteredWidgets = useMemo(() => {
let widgetsBeingUsed = Object.values(value).reduce((newValue, wid) => {
newValue = [...newValue, ...wid];
return newValue;
}, []);
const widgetsArray = Object.entries(widgets).filter(([widgetId, widgetInfo]) => !widgetsBeingUsed.includes(widgetId));
return Object.fromEntries(widgetsArray);
}, [value]);
/* Add Item to setValue() */
const addItem = (widgetId, onToggle) => {
setValue({
...value,
[activeContainer]: [...value[activeContainer], widgetId]
});
customize.section(widgets[widgetId].section).expand();
onToggle();
setActiveIndicator(null);
setActiveWidget(widgetId);
};
/* Remove Item from value state and return an array*/
const removeItem = (widget, containerId) => {
let columnElements = value[containerId].filter(_thisWidget => widget !== _thisWidget);
return {
...value,
[containerId]: columnElements
};
};
/* Retrieve the value from removeItem() and set that value into setValue() */
const removeItemAndUpdate = (widget, containerId, event) => {
event.preventDefault();
event.stopPropagation();
customize.section(builderSettingsSection).expand();
setValue(removeItem(widget, containerId));
};
/* Handle drag */
const handleDragEnd = event => {
const {
active: start,
over
} = event;
if (over === null || over === undefined) return;
const {
id: startId
} = start;
const {
id: overId
} = over;
const activeContainer = findContainer(startId);
const overContainer = findContainer(overId);
if (!activeContainer || !overContainer || activeContainer !== overContainer) return;
const activeIndex = value[activeContainer].indexOf(startId);
const overIndex = value[overContainer].indexOf(overId);
if (activeIndex !== overIndex) {
setValue(prevValue => ({
...prevValue,
[overContainer]: (0,_dnd_kit_sortable__WEBPACK_IMPORTED_MODULE_3__.arrayMove)(prevValue[overContainer], activeIndex, overIndex)
}));
}
};
/* Find the container id from the given widget id */
const findContainer = id => {
if (id in value) return id; // if id is container id return it
return Object.keys(value).find(key => value[key].includes(id));
};
/* Handle Drag Over */
const handleDragOver = event => {
const {
active: start,
over,
draggingRect
} = event;
if (over === null || over === undefined) return;
const {
id: startId
} = start;
const {
id: overId
} = over;
// Find the containers
const activeContainer = findContainer(startId);
const overContainer = findContainer(overId);
if (!activeContainer || !overContainer || activeContainer === overContainer) return;
setValue(prev => {
const activeItems = prev[activeContainer];
const overItems = prev[overContainer];
// Find the indexes for the items
const activeIndex = activeItems.indexOf(startId);
const overIndex = overItems.indexOf(overId);
let newIndex;
if (overId in prev) {
// We're at the root droppable of a container
newIndex = overItems.length + 1;
} else {
const isBelowLastItem = over && overIndex === overItems.length - 1 && draggingRect?.offsetTop > over.rect.offsetTop + over.rect.height;
const modifier = isBelowLastItem ? 1 : 0;
newIndex = overIndex >= 0 ? overIndex + modifier : overItems.length + 1;
}
return {
...prev,
[activeContainer]: [...prev[activeContainer].filter(item => item !== startId)],
[overContainer]: [...prev[overContainer].slice(0, newIndex), value[activeContainer][activeIndex], ...prev[overContainer].slice(newIndex, prev[overContainer].length)]
};
});
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_1__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "builder-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "rows-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.DndContext, {
onDragEnd: handleDragEnd,
onDragOver: handleDragOver,
sensors: sensors
}, Object.values(structuredValue).map((row, rowIndex) => {
let rowClass = 'row';
rowClass += ' ' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(rowIndex + 1);
rowClass += ' layout-' + columnLayouts[placement + "_" + rowIndex][responsive];
rowClass += ' column-' + columnCounts[placement + "_" + rowIndex];
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: rowClass,
key: rowIndex
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RowSettings, {
section: placement + '_' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(rowIndex + 1) + '_row',
value: value,
setValue: setValue,
isActive: activeIndicator === rowIndex,
setActiveIndicator: setActiveIndicator,
activeIndicator: rowIndex,
setActiveWidget: setActiveWidget
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "column-wrapper"
}, Object.entries(row).map(([containerId, columnWidgets], columnIndex) => {
let columnCount = columnIndex + 1;
if (columnIndex >= columnCounts[placement + "_" + rowIndex]) return;
const columnHasElements = columnWidgets.length;
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dropdown, {
key: columnIndex,
popoverProps: {
resize: false,
noArrow: false,
flip: true,
variant: "unstyled",
placement: 'bottom-end'
},
contentClassName: "blogzee-header-builder-popover",
renderToggle: ({
onToggle
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Droppable, {
id: containerId,
columnHasElements: columnHasElements,
onToggle: onToggle,
mainClass: 'column ' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(columnCount),
items: columnWidgets
}, columnWidgets.map((element, elementIndex) => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Draggable, {
key: elementIndex,
id: element,
containerId: containerId,
widgets: widgets,
removeItem: removeItemAndUpdate,
setActiveIndicator: setActiveIndicator,
activeWidget: activeWidget,
setActiveWidget: setActiveWidget
});
})),
onToggle: () => setActiveContainer(containerId),
renderContent: ({
onToggle
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(HeaderItems, {
widgets: filteredWidgets,
onToggle: onToggle,
addItem: addItem
}))
});
})));
})))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Footer, {
setIsBuilderHidden: setIsBuilderHidden,
isBuilderHidden: isBuilderHidden
})));
};
/**
* Draggable Component
* Render Column Elements HTML
*
* @since 1.0.0
*/
const Draggable = props => {
const {
widgets,
id: ID,
containerId,
activeWidget
} = props;
const {
attributes,
listeners,
setNodeRef,
transform,
transition
} = (0,_dnd_kit_sortable__WEBPACK_IMPORTED_MODULE_3__.useSortable)({
id: ID
});
const label = widgets[ID]?.label;
const section = widgets[ID]?.section;
const style = {
transform: _dnd_kit_utilities__WEBPACK_IMPORTED_MODULE_4__.CSS.Transform.toString(transform),
transition
};
/**
* Handle click
*
* @since 1.0.0
*/
const handleClick = (event, section) => {
event.preventDefault();
event.stopPropagation();
props.setActiveIndicator(null);
props.setActiveWidget(ID);
customize.section(section).expand();
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: 'column-item' + (activeWidget === ID ? ' is-active' : ''),
ref: setNodeRef,
style: style,
...listeners,
...attributes,
onClick: event => handleClick(event, section)
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "item-label"
}, label), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "item-label",
icon: "no-alt",
onClick: event => props.removeItem(ID, containerId, event)
}));
};
Draggable.defaultProps = {
removeItem: function () {},
containerId: ''
};
/**
* Droppable Component
*
* @since 1.0.0
*/
const Droppable = props => {
const {
columnHasElements,
mainClass,
items
} = props;
const {
setNodeRef
} = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.useDroppable)({
id: props.id
});
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_dnd_kit_sortable__WEBPACK_IMPORTED_MODULE_3__.SortableContext, {
items: items === undefined ? [] : items,
id: props.id,
strategy: _dnd_kit_sortable__WEBPACK_IMPORTED_MODULE_3__.rectSwappingStrategy
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: mainClass + (columnHasElements ? ' has-children' : ' no-children'),
ref: setNodeRef,
onClick: () => props.onToggle()
}, props.children));
};
/**
* Render Popup HTML
*
* @since 1.0.0
*/
const HeaderItems = props => {
const {
widgets
} = props;
let elementClass = 'header-elements-wrapper';
if (Object.entries(widgets).length <= 0) elementClass += ' no-elements';
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: elementClass
}, Object.entries(widgets).length > 0 ? Object.entries(widgets).map(([widgetId, widgetValues]) => {
const {
label,
icon,
section
} = widgetValues;
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "element",
onClick: () => props.addItem(widgetId, props.onToggle)
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: 'item-icon',
icon: icon
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "item-label"
}, label));
}) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", null, 'No Elements Available'));
};
/**
* Row settings
*
* @since 1.0.0
*/
const RowSettings = props => {
const {
section,
label,
isActive,
activeIndicator
} = props;
let _thisClass = 'row-settings';
if (isActive) _thisClass += ' is-active';
const handleOnClick = () => {
customize.section(section).expand();
props.setActiveIndicator(activeIndicator);
props.setActiveWidget(null);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: _thisClass,
onClick: handleOnClick
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "admin-generic"
}), label !== '' && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", null, __(escapeHTML(label), 'blogzee')));
};
RowSettings.defaultProps = {
label: ''
};
/**
* Builder footer
*
* @since 1.0.0
*/
const Footer = props => {
const {
isBuilderHidden
} = props;
/* Toggle the builder */
const toggleBuilder = () => {
const mainContainer = document.getElementById('customize-controls');
if (mainContainer.classList.contains('blogzee-builder-collapsed')) {
mainContainer.classList.remove('blogzee-builder-collapsed');
props.setIsBuilderHidden(false);
} else {
mainContainer.classList.add('blogzee-builder-collapsed');
props.setIsBuilderHidden(true);
}
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "builder-footer-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "upgrade-notice-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "upgrade-notice"
}, 'Having troubling working with builder ?'), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
className: "notice-button",
variant: "primary",
href: "https://blazethemes.com/support/",
target: "blank"
}, 'Get Support')), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "show-hide-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "arrow-" + (!isBuilderHidden ? 'down' : 'up') + "-alt2",
className: "builder-visibility",
onClick: toggleBuilder
}, 'Hide / Show')));
};
/***/ }),
/***/ "./src/presetComponent.js":
/*!********************************!*\
!*** ./src/presetComponent.js ***!
\********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeePresetControl: () => (/* binding */ BlogzeePresetControl)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./store */ "./src/store.js");
const {
ColorPicker,
ColorIndicator,
Dropdown,
Tooltip,
TextControl,
GradientPicker,
Button,
Dashicon,
RadioControl
} = wp.components;
const {
useState,
useEffect
} = wp.element;
const {
useDispatch
} = wp.data;
const {
escapeHTML
} = wp.escapeHtml;
const {
__
} = wp.i18n;
const {
customize
} = wp;
function BlogzeePresetControl(props) {
const [value, setValue] = useState(props.value);
const {
color_palettes: colorPalettes,
active_palette: activePalette = '0'
} = value;
const {
label,
description,
blend
} = customize.settings.controls[props.setting];
const activePresetColors = colorPalettes[activePalette];
const {
setSolidColorPreset,
setGradientColorPreset
} = useDispatch(_store__WEBPACK_IMPORTED_MODULE_2__.store);
useEffect(() => {
customize.value(props.setting)(value);
if (blend === 'solid') {
setSolidColorPreset(activePresetColors);
} else {
setGradientColorPreset(activePresetColors);
}
}, [value]);
/**
* update colors in palettes
*
* @since 1.0.0
*/
const updateColorIndexState = (color, paletteItemIndex, paletteIndex) => {
let updatedValue = colorPalettes.map((current, index) => {
if (index == paletteIndex) {
return current.map((_thisColor, colorItem) => {
return colorItem == paletteItemIndex ? color : _thisColor;
});
} else {
return current;
}
});
setValue({
...value,
'color_palettes': updatedValue
});
};
/**
* update number of items a single palette has
*
* @since 1.0.0
*/
const updatePaletteItemCount = (palette, paletteIndex) => {
let updatedColorPalette = colorPalettes.map((current, index) => {
return index === paletteIndex ? palette : current;
});
setValue({
...value,
'color_palettes': updatedColorPalette
});
};
/**
* update number of palettes
*
* @since 1.0.0
*/
const updatePaletteCount = () => {
setValue({
...value,
'color_palettes': [...colorPalettes, colorPalettes[colorPalettes.length - 1]]
});
};
/**
* Remove color Palette
*
* @since 1.0.0
*/
const removeColorPalette = (event, indexToRemove) => {
event.preventDefault();
event.stopPropagation();
let newValue = {
...value,
color_palettes: colorPalettes.filter((current, _thisIndex) => _thisIndex !== indexToRemove)
};
if (indexToRemove < activePalette) {
let newActivePalette = (parseInt(activePalette) - 1).toString();
newValue = {
...newValue,
active_palette: newActivePalette
};
}
setValue(newValue);
};
/**
* Generate control options array
*/
const optionsArray = () => {
return colorPalettes.map((currentItem, itemIndex) => {
return {
label: (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "palette",
key: itemIndex
}, currentItem.map((color, index) => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeePresetRepeatable, {
key: index,
currentColor: color,
index: index,
paletteIndex: itemIndex,
originalValue: colorPalettes,
updateColorIndexState: updateColorIndexState,
removePresetColor: updatePaletteItemCount,
blend: blend
});
}), colorPalettes.length > 1 && activePalette != itemIndex && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "remove-from-list",
icon: "trash",
onClick: event => removeColorPalette(event, itemIndex)
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeRepeaterComponent, {
repeatableComponent: currentItem,
updateFunction: updatePaletteItemCount,
index: itemIndex
})),
value: itemIndex.toString()
};
});
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_1__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-wrap"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RadioControl, {
className: 'blogzee-radio-image',
selected: activePalette,
options: optionsArray(),
onChange: item => setValue({
...value,
'active_palette': item
})
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TextControl, {
id: props.setting + '-reflector',
type: "hidden",
value: activePresetColors.length
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeRepeaterComponent, {
repeatableComponent: colorPalettes,
text: __('Add new', 'blogzee'),
updateFunction: updatePaletteCount
}));
}
/**
* A repeater component that handles repeating the repeatable components
*
* @params repeatable component
* @since 1.0.0
*/
const BlogzeeRepeaterComponent = ({
repeatableComponent,
text,
updateFunction,
index
}) => {
const [repeatable, setRepeatable] = useState(repeatableComponent);
const [isClicked, setIsClicked] = useState(false);
useEffect(() => {
if (isClicked) {
if (updateFunction.length > 0) {
updateFunction(repeatable, index);
} else {
updateFunction();
}
}
}, [repeatable]);
/**
* handle click event
*
* @since 1.0.0
*/
const handleClickEvent = () => {
setRepeatable([...repeatableComponent, repeatableComponent[repeatableComponent.length - 1]]);
setIsClicked(true);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
className: "add-to-list",
variant: "primary",
text: text,
isSmall: true,
icon: "plus",
onClick: () => handleClickEvent()
});
};
BlogzeeRepeaterComponent.defaultProps = {
text: '',
updateFunction: function () {},
index: ''
};
/**
* This is the component to repeat
*
* @since 1.0.0
*/
const BlogzeePresetRepeatable = ({
currentColor,
index,
originalValue,
updateColorIndexState,
blend,
paletteIndex,
removePresetColor
}) => {
const ACTIVEPALETTE = originalValue[paletteIndex];
const handleColorChange = newColor => {
updateColorIndexState(newColor, index, paletteIndex);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "item"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dropdown, {
popoverProps: {
resize: false,
noArrow: false,
flip: true,
variant: "unstyled",
placement: 'bottom-end'
},
contentClassName: "blogzee-color-control-popover",
renderToggle: ({
isOpen,
onToggle
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Preset ' + (index + 1)), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "color-indicator-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ColorIndicator, {
colorValue: currentColor,
onClick: onToggle,
"aria-expanded": isOpen
}))),
renderContent: () => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, blend == 'solid' ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ColorPicker, {
color: currentColor,
onChange: newPreset => handleColorChange(newPreset),
enableAlpha: true
}) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(GradientPicker, {
value: currentColor,
onChange: newPreset => handleColorChange(newPreset),
__nextHasNoMargin: true
}))
}), ACTIVEPALETTE.length > 1 && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "remove-preset",
icon: "no-alt",
onClick: () => removePresetColor(ACTIVEPALETTE.filter((colorItem, colorIndex) => index !== colorIndex), paletteIndex)
}));
};
/***/ }),
/***/ "./src/responsiveBuilder.js":
/*!**********************************!*\
!*** ./src/responsiveBuilder.js ***!
\**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeResponsiveBuilder: () => (/* binding */ BlogzeeResponsiveBuilder)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
/* harmony import */ var _dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @dnd-kit/core */ "./node_modules/@dnd-kit/core/dist/core.esm.js");
/* harmony import */ var _dnd_kit_sortable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dnd-kit/sortable */ "./node_modules/@dnd-kit/sortable/dist/sortable.esm.js");
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./store */ "./src/store.js");
/* harmony import */ var _headerBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./headerBuilder */ "./src/headerBuilder.js");
const {
Dropdown
} = wp.components;
const {
useState,
useEffect,
useMemo,
useRef
} = wp.element;
const {
escapeHTML
} = wp.escapeHtml;
const {
__
} = wp.i18n;
const {
customize
} = wp;
const {
useSelect,
useDispatch
} = wp.data;
const BlogzeeResponsiveBuilder = props => {
const [value, setValue] = useState(props.value);
const {
label,
description,
widgets,
responsive_canvas_id: canvasId,
placement,
builder_settings_section: builderSettingsSection,
responsive_section: responsiveSection
} = customize.settings.controls[props.setting];
const [isBuilderHidden, setIsBuilderHidden] = useState(false);
const [activeContainer, setActiveContainer] = useState(null);
const [activeIndicator, setActiveIndicator] = useState(null);
const [activeWidget, setActiveWidget] = useState(null);
const [responsive, setResponsive] = useState('tablet');
const elementRef = useRef(null);
const {
setResponsiveHeaderBuilderReflector
} = useDispatch(_store__WEBPACK_IMPORTED_MODULE_4__.store);
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_1__.blogzeeReflectResponsiveInControl)(setResponsive);
}, []);
useEffect(() => {
const widgetsSection = Object.values(widgets).map(widget => widget.section);
const rowCount = [1, 2, 3];
const rowSections = rowCount.map(row => placement + '_' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(row) + '_row');
(0,_component_function__WEBPACK_IMPORTED_MODULE_1__.blogzeeBackButtonClick)(builderSettingsSection, [...rowSections, ...widgetsSection], setActiveWidget, setActiveIndicator);
}, []);
/* To prevent events from being swallowed */
const sensors = (0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.useSensors)((0,_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.useSensor)(_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.MouseSensor, {
// Require the mouse to move by 3 pixels before activating
activationConstraint: {
distance: 3
}
}));
/**
* An array that contains the values from the column count controls
*
* @since 1.0.0
*/
const columnCounts = useSelect(select => {
return {
/* Header Count */
"header_0": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getHeaderFirstRow(),
"header_1": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getHeaderSecondRow(),
"header_2": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getHeaderThirdRow(),
/* Footer Count */
"footer_0": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getFooterFirstRow(),
"footer_1": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getFooterSecondRow(),
"footer_2": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getFooterThirdRow()
};
}, []);
/**
* An array that contains the values from the column layout controls
*
* @since 1.0.0
*/
const columnLayouts = useSelect(select => {
return {
/* Header Layout */
"header_0": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getHeaderFirstRowLayout(),
"header_1": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getHeaderSecondRowLayout(),
"header_2": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getHeaderThirdRowLayout(),
/* Footer Layout */
"footer_0": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getFooterFirstRowLayout(),
"footer_1": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getFooterSecondRowLayout(),
"footer_2": select(_store__WEBPACK_IMPORTED_MODULE_4__.store).getFooterThirdRowLayout()
};
}, []);
/**
* An array that has all the widgets that are not being used
*
* @since 1.0.0
*/
const filteredWidgets = useMemo(() => {
let widgetsBeingUsed = Object.values(value).reduce((newValue, wid) => {
newValue = [...newValue, ...wid];
return newValue;
}, []);
const widgetsArray = Object.entries(widgets).filter(([widgetId, widgetInfo]) => !widgetsBeingUsed.includes(widgetId));
return Object.fromEntries(widgetsArray);
}, [value]);
/**
* A structured value to render out HTML div structure
*
* @since 1.0.0
*/
const structuredValue = useMemo(() => {
return Object.entries(value).reduce((newValue, [containerID, containerValue]) => {
if (containerID !== canvasId) {
const [row] = containerID; // Split the key into two parts
if (!newValue[row]) {
newValue[row] = {}; // Initialize the row level if it doesn't exist
}
newValue[row] = {
...newValue[row],
[containerID]: containerValue
}; // Assign the value to the column level
} else {
newValue = {
[Object.keys(newValue).length]: {
[canvasId]: containerValue
},
...newValue
};
}
return newValue;
}, {});
}, [value]);
/**
* Save the control
*
* @since 1.0.0
*/
useEffect(() => {
customize.value(props.setting)(value);
setResponsiveHeaderBuilderReflector(structuredValue);
}, [value]);
/**
* Handle drag over event
*
* @since 1.0.0
*/
const handleDragOver = event => {
const {
active: start,
over
} = event;
if (over === null || over === undefined) return;
const {
id: startId
} = start;
const {
id: overId
} = over;
// Find the containers
const activeContainer = findContainer(startId);
const overContainer = findContainer(overId);
if (!activeContainer || !overContainer || activeContainer === overContainer) return;
setValue({
...value,
[activeContainer]: [...value[activeContainer].filter(item => item !== startId)],
[overContainer]: [...value[overContainer], startId]
});
};
/**
* Handle drag end event
*
* @since 1.0.0
*/
const handleDragEnd = event => {
const {
active: start,
over
} = event;
if (over === null || over === undefined) return;
const {
id: startId
} = start;
const {
id: overId
} = over;
const activeContainer = findContainer(startId);
const overContainer = findContainer(overId);
if (!activeContainer || !overContainer || activeContainer !== overContainer) return;
const activeIndex = value[activeContainer].indexOf(startId);
const overIndex = value[overContainer].indexOf(overId);
if (activeIndex !== overIndex) {
setValue(prevValue => ({
...prevValue,
[overContainer]: (0,_dnd_kit_sortable__WEBPACK_IMPORTED_MODULE_3__.arrayMove)(prevValue[overContainer], activeIndex, overIndex)
}));
}
};
/* Find the container id from the given widget id */
const findContainer = id => {
if (id in value) return id; // if id is container id return it
return Object.keys(value).find(key => value[key].includes(id));
};
/**
* Add new widget
*
* @since 1.0.0
*/
const addNewWidget = (widgetId, onToggle) => {
setValue({
...value,
[activeContainer]: [...value[activeContainer], widgetId]
});
customize.section(widgets[widgetId].section).expand();
onToggle();
setActiveContainer(null);
};
/**
* Remove selected widget
*
* @since 1.0.0
*/
const removeWidget = (widgetId, containerId, event) => {
event.preventDefault();
event.stopPropagation();
customize.section(builderSettingsSection).expand();
setValue({
...value,
[containerId]: value[containerId].filter(widget => widgetId !== widget)
});
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_1__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main",
ref: elementRef
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "builder-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "rows-wrapper mobile-canvas--active"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_dnd_kit_core__WEBPACK_IMPORTED_MODULE_2__.DndContext, {
onDragEnd: handleDragEnd,
onDragOver: handleDragOver,
sensors: sensors
}, Object.values(structuredValue).map((row, rowIndex) => {
let rowClass = 'row';
rowClass += ' ' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(rowIndex + 1);
if (canvasId in row) {
rowClass += ' mobile-canvas';
} else {
rowClass += ' layout-' + columnLayouts[placement + "_" + rowIndex][responsive];
rowClass += ' column-' + columnCounts[placement + "_" + rowIndex];
}
const rowSettingsSection = placement + '_' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(rowIndex + 1) + '_row';
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: rowClass,
key: rowIndex
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_headerBuilder__WEBPACK_IMPORTED_MODULE_5__.RowSettings, {
section: canvasId in row ? responsiveSection : rowSettingsSection,
value: value,
setValue: setValue,
isActive: activeIndicator === rowIndex,
setActiveIndicator: setActiveIndicator,
activeIndicator: rowIndex,
setActiveWidget: setActiveWidget,
label: canvasId in row ? escapeHTML('Mobile Canvas') : ''
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "column-wrapper"
}, Object.entries(row).map(([containerId, columnWidgets], columnIndex) => {
if (columnIndex >= columnCounts[placement + "_" + rowIndex]) return;
const columnHasElements = columnWidgets.length;
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dropdown, {
key: columnIndex,
popoverProps: {
resize: false,
noArrow: false,
flip: true,
variant: "unstyled",
placement: 'bottom-end'
},
contentClassName: "blogzee-header-builder-popover",
renderToggle: ({
onToggle
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_headerBuilder__WEBPACK_IMPORTED_MODULE_5__.Droppable, {
id: containerId,
columnHasElements: columnHasElements,
onToggle: onToggle,
mainClass: 'column ' + (0,_component_function__WEBPACK_IMPORTED_MODULE_1__.convertNumbertoOrdinalString)(parseInt(columnIndex) + 1),
items: columnWidgets
}, columnWidgets.map((element, elementIndex) => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_headerBuilder__WEBPACK_IMPORTED_MODULE_5__.Draggable, {
key: elementIndex,
id: element,
containerId: containerId,
widgets: widgets,
removeItem: removeWidget,
parent: 'builder',
setActiveIndicator: setActiveIndicator,
activeWidget: activeWidget,
setActiveWidget: setActiveWidget
});
})),
onToggle: () => setActiveContainer(containerId),
renderContent: ({
onToggle
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_headerBuilder__WEBPACK_IMPORTED_MODULE_5__.HeaderItems, {
widgets: filteredWidgets,
onToggle: onToggle,
addItem: addNewWidget
}))
});
})));
})))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_headerBuilder__WEBPACK_IMPORTED_MODULE_5__.Footer, {
setIsBuilderHidden: setIsBuilderHidden,
isBuilderHidden: isBuilderHidden
})));
};
/***/ }),
/***/ "./src/responsiveRadioImage.js":
/*!*************************************!*\
!*** ./src/responsiveRadioImage.js ***!
\*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeResponsiveRadioImage: () => (/* binding */ BlogzeeResponsiveRadioImage)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ "./src/store.js");
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
const {
customize
} = wp;
const {
useSelect,
useDispatch
} = wp.data;
const {
Tooltip,
RadioControl
} = wp.components;
const {
useState,
useEffect,
useMemo
} = wp.element;
const BlogzeeResponsiveRadioImage = props => {
const [value, setValue] = useState(props.value);
const controlInstance = customize.control(props.setting).params;
const {
label,
description,
choices,
has_callback: hasCallback,
row,
builder
} = controlInstance;
const [responsive, setResponsive] = useState('desktop');
const {
setHeaderFirstRowLayout,
setHeaderSecondRowLayout,
setHeaderThirdRowLayout,
setFooterFirstRowLayout,
setFooterSecondRowLayout,
setFooterThirdRowLayout
} = useDispatch(_store__WEBPACK_IMPORTED_MODULE_1__.store);
/**
* Save the control
*
* @since 1.0.0
*/
useEffect(() => {
customize.value(props.setting)(value);
if (hasCallback) {
switch (props.setting) {
/* Header Layouts */
case 'header_first_row_column_layout':
setHeaderFirstRowLayout(value);
break;
case 'header_second_row_column_layout':
setHeaderSecondRowLayout(value);
break;
case 'header_third_row_column_layout':
setHeaderThirdRowLayout(value);
break;
/* Footer Layouts */
case 'footer_first_row_column_layout':
setFooterFirstRowLayout(value);
break;
case 'footer_second_row_column_layout':
setFooterSecondRowLayout(value);
break;
case 'footer_third_row_column_layout':
setFooterThirdRowLayout(value);
break;
}
}
}, [value]);
/**
* An array that contains the values from the column count controls
*
* @since 1.0.0
*/
const columnCounts = useSelect(select => {
return {
/* Header Count */
"header_0": select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getHeaderFirstRow(),
"header_1": select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getHeaderSecondRow(),
"header_2": select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getHeaderThirdRow(),
/* Footer Count */
"footer_0": select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getFooterFirstRow(),
"footer_1": select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getFooterSecondRow(),
"footer_2": select(_store__WEBPACK_IMPORTED_MODULE_1__.store).getFooterThirdRow()
};
}, []);
/**
* Reflect the active responsive in our custom controls
*
* @since 1.0.0
*/
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_2__.blogzeeReflectResponsiveInControl)(setResponsive);
}, []);
/**
* Handle responsive icons click
*
* @since 1.0.0
*/
const handleResponsiveIconsClick = type => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_2__.blogzeeReflectResponsiveInCustomizer)(setResponsive, type);
};
/**
* Filter the choices according to colum count
*
* @since 1.0.0
*/
const filteredChoices = useMemo(() => {
if (hasCallback) {
let count = columnCounts[builder + "_" + (row - 1)];
return Object.entries(choices).reduce((newValue, [layoutId, layoutValues]) => {
if ("columns" in layoutValues || "devices" in layoutValues) {
const {
columns,
devices
} = layoutValues;
if (columns.includes(count)) {
if (devices.includes(responsive)) {
newValue = {
...newValue,
[layoutId]: layoutValues
};
}
}
} else {
newValue = {
...newValue,
[layoutId]: layoutValues
};
}
return newValue;
}, {});
} else {
return choices;
}
}, [columnCounts, responsive]);
/**
* Structuring the choices because RadioControl component requires data in a certain format
*
* @since 1.0.0
*/
const structuredChoices = useMemo(() => {
return Object.entries(filteredChoices).map(([layoutId, layoutValue], index) => {
const {
label: layoutLabel,
url
} = layoutValue;
return {
label: (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: layoutLabel
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
src: url,
loading: "lazy"
})),
value: (0,_component_function__WEBPACK_IMPORTED_MODULE_2__.convertNumbertoCardinalString)(index + 1)
};
});
}, [filteredChoices, responsive]);
/**
* If selected layout is not preset set it to default
*
* @since 1.0.0
*/
useEffect(() => {
const {
desktop,
tablet,
smartphone
} = value;
let layoutIds = Object.values(structuredChoices).reduce((newValue, current) => {
const {
value: _thisValue
} = current;
newValue = [...newValue, _thisValue];
return newValue;
}, []);
if (!layoutIds.includes(desktop) && responsive === 'desktop') setValue({
...value,
desktop: 'one'
});
if (!layoutIds.includes(tablet) && responsive === 'tablet') setValue({
...value,
tablet: 'one'
});
if (!layoutIds.includes(smartphone) && responsive === 'smartphone') setValue({
...value,
smartphone: 'one'
});
}, [columnCounts]);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "radio-image-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeControlHeader, {
label: label,
description: description
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeGetResponsiveIcons, {
responsive: responsive,
stateToSet: handleResponsiveIconsClick
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "control-inner"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RadioControl, {
selected: value[responsive],
options: structuredChoices,
onChange: newValue => setValue({
...value,
[responsive]: newValue
})
})));
};
/***/ }),
/***/ "./src/store.js":
/*!**********************!*\
!*** ./src/store.js ***!
\**********************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ store: () => (/* binding */ store)
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
const DEFAULT_VALUE = {
/* Header Rows */
headerFirstRow: 2,
headerSecondRow: 2,
headerThirdRow: 2,
/* Footer Rows */
footerFirstRow: 2,
footerSecondRow: 2,
footerThirdRow: 2,
/* Header layouts */
headerFirstRowLayout: {
desktop: 'one',
tablet: 'one',
smartphone: 'one'
},
headerSecondRowLayout: {
desktop: 'one',
tablet: 'one',
smartphone: 'one'
},
headerThirdRowLayout: {
desktop: 'one',
tablet: 'one',
smartphone: 'one'
},
/* Footer layouts */
footerFirstRowLayout: {
desktop: 'one',
tablet: 'one',
smartphone: 'one'
},
footerSecondRowLayout: {
desktop: 'one',
tablet: 'one',
smartphone: 'one'
},
footerThirdRowLayout: {
desktop: 'one',
tablet: 'one',
smartphone: 'one'
},
/* Header Builder reflector */
headerBuilderReflector: [],
/* Footer Builder reflector */
footerBuilderReflector: [],
/* Responsive Header Builder reflector */
responsiveHeaderBuilderReflector: {},
themeColor: '#EC6A2A',
gradientThemeColor: 'linear-gradient(135deg,#942cddcc 0,#38a3e2cc 100%)',
solidColorPreset: ['#40E0D0', '#F4C430', '#FF00FF', '#007BA7', '#DC143C', '#7FFF00'],
gradientColorPreset: ['linear-gradient(135deg, #000000, #FFFF00)', 'linear-gradient(135deg, #191970, #FFD700)', 'linear-gradient(135deg, #4B0082, #FFA500)', 'linear-gradient(135deg, #FF8C00, #483D8B)', 'linear-gradient(135deg, #006400, #8B4513)', 'linear-gradient(135deg, #DC143C, #FFD700)'],
/* Typography Preset */
typographyPreset: {}
};
const actions = {
/* Header Rows */
setHeaderFirstRow(headerFirstRow) {
return {
type: 'SET_HEADER_FIRST_ROW',
headerFirstRow
};
},
setHeaderSecondRow(headerSecondRow) {
return {
type: 'SET_HEADER_SECOND_ROW',
headerSecondRow
};
},
setHeaderThirdRow(headerThirdRow) {
return {
type: 'SET_HEADER_THIRD_ROW',
headerThirdRow
};
},
/* Header layouts */
setHeaderFirstRowLayout(headerFirstRowLayout) {
return {
type: 'SET_HEADER_FIRST_ROW_LAYOUT',
headerFirstRowLayout
};
},
setHeaderSecondRowLayout(headerSecondRowLayout) {
return {
type: 'SET_HEADER_SECOND_ROW_LAYOUT',
headerSecondRowLayout
};
},
setHeaderThirdRowLayout(headerThirdRowLayout) {
return {
type: 'SET_HEADER_THIRD_ROW_LAYOUT',
headerThirdRowLayout
};
},
/* Footer Rows */
setFooterFirstRow(footerFirstRow) {
return {
type: 'SET_FOOTER_FIRST_ROW',
footerFirstRow
};
},
setFooterSecondRow(footerSecondRow) {
return {
type: 'SET_FOOTER_SECOND_ROW',
footerSecondRow
};
},
setFooterThirdRow(footerThirdRow) {
return {
type: 'SET_FOOTER_THIRD_ROW',
footerThirdRow
};
},
/* Footer layouts */
setFooterFirstRowLayout(footerFirstRowLayout) {
return {
type: 'SET_FOOTER_FIRST_ROW_LAYOUT',
footerFirstRowLayout
};
},
setFooterSecondRowLayout(footerSecondRowLayout) {
return {
type: 'SET_FOOTER_SECOND_ROW_LAYOUT',
footerSecondRowLayout
};
},
setFooterThirdRowLayout(footerThirdRowLayout) {
return {
type: 'SET_FOOTER_THIRD_ROW_LAYOUT',
footerThirdRowLayout
};
},
/* Header Builder Reflector */
setHeaderBuilderReflector(headerBuilderReflector) {
return {
type: 'SET_HEADER_BUILDER_REFLECTOR',
headerBuilderReflector
};
},
/* Footer Builder Reflector */
setFooterBuilderReflector(footerBuilderReflector) {
return {
type: 'SET_FOOTER_BUILDER_REFLECTOR',
footerBuilderReflector
};
},
/* Responsive Header Builder Reflector */
setResponsiveHeaderBuilderReflector(responsiveHeaderBuilderReflector) {
return {
type: 'SET_RESPONSIVE_HEADER_BUILDER_REFLECTOR',
responsiveHeaderBuilderReflector
};
},
/* =========================== */
setThemeColor(themeColor) {
return {
type: 'SET_THEME_COLOR',
themeColor
};
},
setGradientThemeColor(gradientThemeColor) {
return {
type: 'SET_GRADIENT_THEME_COLOR',
gradientThemeColor
};
},
setSolidColorPreset(solidColorPreset) {
return {
type: 'SET_SOLID_COLOR_PRESET',
solidColorPreset
};
},
setGradientColorPreset(gradientColorPreset) {
return {
type: 'SET_GRADIENT_COLOR_PRESET',
gradientColorPreset
};
},
setTypographyPreset(typographyPreset) {
return {
type: 'SET_TYPOGRAPHY_PRESET',
typographyPreset
};
}
};
const store = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.createReduxStore)('demo', {
reducer: (state = DEFAULT_VALUE, action) => {
switch (action.type) {
/* Header Rows */
case 'SET_HEADER_FIRST_ROW':
return {
...state,
headerFirstRow: action.headerFirstRow
};
case 'SET_HEADER_SECOND_ROW':
return {
...state,
headerSecondRow: action.headerSecondRow
};
case 'SET_HEADER_THIRD_ROW':
return {
...state,
headerThirdRow: action.headerThirdRow
};
/* Header Layouts */
case 'SET_HEADER_FIRST_ROW_LAYOUT':
return {
...state,
headerFirstRowLayout: action.headerFirstRowLayout
};
case 'SET_HEADER_SECOND_ROW_LAYOUT':
return {
...state,
headerSecondRowLayout: action.headerSecondRowLayout
};
case 'SET_HEADER_THIRD_ROW_LAYOUT':
return {
...state,
headerThirdRowLayout: action.headerThirdRowLayout
};
/* Footer Rows */
case 'SET_FOOTER_FIRST_ROW':
return {
...state,
footerFirstRow: action.footerFirstRow
};
case 'SET_FOOTER_SECOND_ROW':
return {
...state,
footerSecondRow: action.footerSecondRow
};
case 'SET_FOOTER_THIRD_ROW':
return {
...state,
footerThirdRow: action.footerThirdRow
};
/* Footer Layouts */
case 'SET_FOOTER_FIRST_ROW_LAYOUT':
return {
...state,
footerFirstRowLayout: action.footerFirstRowLayout
};
case 'SET_FOOTER_SECOND_ROW_LAYOUT':
return {
...state,
footerSecondRowLayout: action.footerSecondRowLayout
};
case 'SET_FOOTER_THIRD_ROW_LAYOUT':
return {
...state,
footerThirdRowLayout: action.footerThirdRowLayout
};
/* Header builder reflector */
case 'SET_HEADER_BUILDER_REFLECTOR':
return {
...state,
headerBuilderReflector: action.headerBuilderReflector
};
/* Footer builder reflector */
case 'SET_FOOTER_BUILDER_REFLECTOR':
return {
...state,
footerBuilderReflector: action.footerBuilderReflector
};
/* Footer builder reflector */
case 'SET_RESPONSIVE_HEADER_BUILDER_REFLECTOR':
return {
...state,
responsiveHeaderBuilderReflector: action.responsiveHeaderBuilderReflector
};
/* ============================*/
case 'SET_THEME_COLOR':
return {
...state,
themeColor: action.themeColor
};
case 'SET_GRADIENT_THEME_COLOR':
return {
...state,
gradientThemeColor: action.gradientThemeColor
};
case 'SET_SOLID_COLOR_PRESET':
return {
...state,
solidColorPreset: action.solidColorPreset
};
case 'SET_GRADIENT_COLOR_PRESET':
return {
...state,
gradientColorPreset: action.gradientColorPreset
};
case 'SET_TYPOGRAPHY_PRESET':
return {
...state,
typographyPreset: action.typographyPreset
};
}
return state;
},
actions,
selectors: {
/* Header count */
getHeaderFirstRow: state => state.headerFirstRow,
getHeaderSecondRow: state => state.headerSecondRow,
getHeaderThirdRow: state => state.headerThirdRow,
/* Header Layouts */
getHeaderFirstRowLayout: state => state.headerFirstRowLayout,
getHeaderSecondRowLayout: state => state.headerSecondRowLayout,
getHeaderThirdRowLayout: state => state.headerThirdRowLayout,
/* Footer count */
getFooterFirstRow: state => state.footerFirstRow,
getFooterSecondRow: state => state.footerSecondRow,
getFooterThirdRow: state => state.footerThirdRow,
/* Footer Layouts */
getFooterFirstRowLayout: state => state.footerFirstRowLayout,
getFooterSecondRowLayout: state => state.footerSecondRowLayout,
getFooterThirdRowLayout: state => state.footerThirdRowLayout,
/* Header Builder Reflector */
getHeaderBuilderReflector: state => state.headerBuilderReflector,
/* Footer Builder Reflector */
getFooterBuilderReflector: state => state.footerBuilderReflector,
/* Responsive Header Builder Reflector */
getResponsiveHeaderBuilderReflector: state => state.responsiveHeaderBuilderReflector,
/* ============= */
getThemeColor: state => state.themeColor,
getGradientThemeColor: state => state.gradientThemeColor,
getSolidColorPreset: state => state.solidColorPreset,
getGradientColorPreset: state => state.gradientColorPreset,
/* Typography Preset */
getTypographyPreset: state => state.typographyPreset
}
});
(0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.register)(store);
/***/ }),
/***/ "./src/typographyComponent.js":
/*!************************************!*\
!*** ./src/typographyComponent.js ***!
\************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeTypography: () => (/* binding */ BlogzeeTypography),
/* harmony export */ TypographyComponent: () => (/* binding */ TypographyComponent)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_select__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-select */ "./node_modules/react-select/dist/react-select.esm.js");
/* harmony import */ var _googleFonts_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../googleFonts.json */ "./googleFonts.json");
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./src/store.js");
const {
Dropdown,
RangeControl,
Dashicon,
Tooltip,
RadioControl,
TabPanel
} = wp.components;
const {
escapeHTML
} = wp.escapeHtml;
const {
__
} = wp.i18n;
const {
useState,
useEffect
} = wp.element;
const {
customize
} = wp;
const {
useSelect
} = wp.data;
const BlogzeeTypography = props => {
const [typography, setTypography] = useState(props.value);
const [activePreset, setActivePreset] = useState(typography.preset || '-1');
const {
label,
description,
default: defaultValue
} = customize.settings.controls[props.setting];
const [responsive, setResponsive] = useState('desktop');
useEffect(() => {
customize.value(props.setting)({
...typography,
preset: activePreset
});
}, [typography, activePreset]);
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_2__.blogzeeReflectResponsiveInControl)(setResponsive);
}, []);
/**
* Update the typography state
*
* @since 1.0.0
*/
const updateTypographyState = (property, val, reset = false) => {
const responsiveProperties = ['font_size', 'line_height', 'letter_spacing'];
let updatedTypography = {};
if (responsiveProperties.includes(property) && !reset) {
updatedTypography = {
...typography,
[property]: {
...typography[property],
[responsive]: val
}
};
} else {
updatedTypography = {
...typography,
[property]: val
};
}
setTypography(updatedTypography);
setActivePreset('-1');
};
/* Handle main reset button click */
const handleMainReseetButtonClick = () => {
setTypography(defaultValue);
setActivePreset('-1');
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "reset-button components-button is-secondary is-small",
icon: "image-rotate",
onClick: handleMainReseetButtonClick
}), activePreset !== '-1' && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "preset-indicator-wrapper"
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TypographyComponent, {
value: typography,
preset: activePreset,
updateTypography: updateTypographyState,
defaultValue: defaultValue,
setResponsive: setResponsive,
responsive: responsive,
setActivePreset: setActivePreset
}));
};
const FontFamilyArray = () => {
let families = [];
if (_googleFonts_json__WEBPACK_IMPORTED_MODULE_1__) {
families = Object.keys(_googleFonts_json__WEBPACK_IMPORTED_MODULE_1__).map(font => {
return {
value: font,
label: font
};
});
}
return families;
};
const FontWeightsArray = family => {
const italicVariant = _googleFonts_json__WEBPACK_IMPORTED_MODULE_1__[family.value].variants.italic;
const normalVariant = _googleFonts_json__WEBPACK_IMPORTED_MODULE_1__[family.value].variants.normal;
let italicOptions = [],
normalOptions = [];
if (normalVariant) {
let label = "Regular 400";
normalOptions = Object.keys(normalVariant).map(weight => {
switch (weight) {
case '100':
label = "Thin 100";
break;
case '200':
label = "ExtraLight 200";
break;
``;
case '300':
label = "Light 300";
break;
case '400':
label = "Regular 400";
break;
case '500':
label = "Medium 500";
break;
case '600':
label = "SemiBold 600";
break;
case '700':
label = "Bold 700";
break;
case '800':
label = "ExtraBold 800";
break;
case '900':
label = "Black 900";
break;
default:
label = weight;
break;
}
return {
value: weight,
label: label,
variant: 'normal'
};
});
}
if (italicVariant) {
let label = "Regular 400";
italicOptions = Object.keys(italicVariant).map(weight => {
switch (weight) {
case '100':
label = "Thin 100 Italic";
break;
case '200':
label = "ExtraLight 200 Italic";
break;
case '300':
label = "Light 300 Italic";
break;
case '400':
label = "Regular 400 Italic";
break;
case '500':
label = "Medium 500 Italic";
break;
case '600':
label = "SemiBold 600 Italic";
break;
case '700':
label = "Bold 700 Italic";
break;
case '800':
label = "ExtraBold 800 Italic";
break;
case '900':
label = "Black 900 Italic";
break;
default:
label = weight;
break;
}
return {
value: weight,
label: label,
variant: 'italic'
};
});
}
return [[...normalOptions, ...italicOptions], [{
label: 'Normal',
options: Object.values(normalOptions)
}, {
label: 'Italic',
options: Object.values(italicOptions)
}]];
};
const TypographyComponent = ({
value,
defaultValue,
responsive,
isPreset,
preset,
presetIndex,
...props
}) => {
const {
font_family: fontFamily,
font_weight: fontWeight,
font_size: fontSize
} = value;
const typographyPresets = useSelect(select => {
return select(_store__WEBPACK_IMPORTED_MODULE_3__.store).getTypographyPreset();
}, []);
/**
* Generate control options array
*/
const optionsArray = () => {
const {
typographies,
labels
} = typographyPresets;
return labels.map((_thisLabel, index) => {
const {
font_family,
font_size,
font_weight
} = typographies[index];
let style = {
fontFamily: font_family.label,
fontSize: font_size[responsive] + 'px',
fontWeight: font_weight.value,
fontStyle: font_weight.variant
};
return {
label: (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("h2", {
style: style
}, _thisLabel),
value: index.toString()
};
});
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dropdown, {
popoverProps: {
resize: true,
noArrow: false,
flip: true,
variant: "unstyled",
placement: 'bottom'
},
contentClassName: "blogzee-typography-popover",
renderToggle: ({
isOpen,
onToggle
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "typo-value-holder"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "typo-summ-value",
onClick: onToggle,
"aria-expanded": isOpen
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "summ-vals"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "summ-val"
}, fontFamily.label), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("i", null, "/"), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "summ-val"
}, `${fontSize[responsive]}px`), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("i", null, "/"), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "summ-val"
}, fontWeight.label)), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "append-icon dashicons dashicons-ellipsis"
}))),
renderContent: () => {
if (isPreset) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TypographyInnerControls, {
typography: value,
defaultValue: defaultValue,
isPreset: isPreset,
updateTypography: props.updateTypography,
presetIndex: presetIndex,
responsive: responsive,
setResponsive: props.setResponsive
});
} else {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TabPanel, {
activeClass: "active-tab",
initialTabName: preset === '-1' ? 'custom' : 'preset',
tabs: [{
name: 'custom',
title: 'Custom'
}, {
name: 'preset',
title: (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "preset-indicator-wrapper"
}, 'Preset')
}]
}, tab => {
switch (tab.name) {
case 'preset':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RadioControl, {
className: 'blogzee-radio-image',
selected: preset,
options: optionsArray(),
onChange: value => props.setActivePreset(value)
});
break;
case 'custom':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TypographyInnerControls, {
typography: value,
defaultValue: defaultValue,
isPreset: isPreset,
updateTypography: props.updateTypography,
presetIndex: presetIndex,
responsive: responsive,
setResponsive: props.setResponsive
});
break;
}
});
}
}
}));
};
TypographyComponent.defaultProps = {
preset: '-1',
defaultValue: null,
isPreset: false,
presetIndex: null
};
/**
* Typography inner controls
*
* @since 1.0.0
*/
const TypographyInnerControls = props => {
const {
typography,
defaultValue,
isPreset,
presetIndex = null,
responsive
} = props;
const {
font_family: fontFamily,
font_weight: fontWeight,
font_size: fontSize,
line_height: lineHeight,
letter_spacing: letterSpacing,
text_transform: textTransform,
text_decoration: textDecoration,
preset = '-1'
} = typography;
const [fontFamilies, setFontFamilies] = useState([]);
const [fontWeights, setFontWeights] = useState([]);
useEffect(() => {
const fonts = FontFamilyArray();
setFontFamilies(fonts);
}, []);
useEffect(() => {
let weights = FontWeightsArray(fontFamily);
var data = weights[0].find(ele => {
return ele.value === fontWeight.value && ele.variant === fontWeight.variant;
});
if (!data) {
updateTypography('font_weight', weights[0][0]);
}
setFontWeights(weights[1]);
}, [fontFamily]);
/**
* Update typography
*
* @since 1.0.0
*/
const updateTypography = (property, val, reset = false) => {
if (isPreset) {
props.updateTypography(property, val, reset, presetIndex);
} else {
props.updateTypography(property, val, reset);
}
};
const updateIcon = newIcon => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_2__.blogzeeReflectResponsiveInCustomizer)(props.setResponsive, newIcon);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("ul", {
className: "typo-fields"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "typo-field"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react_select__WEBPACK_IMPORTED_MODULE_4__["default"], {
className: "inner-field font-family",
inputId: "blogzee-search-in-select",
isSearchable: true,
value: fontFamily,
placeholder: __(escapeHTML('Search . .'), 'blogzee'),
options: fontFamilies,
onChange: newFont => updateTypography('font_family', newFont)
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "typo-field"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react_select__WEBPACK_IMPORTED_MODULE_4__["default"], {
className: "inner-field font-weight",
inputId: "blogzee-search-in-select",
isSearchable: false,
value: fontWeight,
options: fontWeights,
onChange: newWeight => updateTypography('font_weight', newWeight),
getOptionValue: option => option.label
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "typo-field"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "image-rotate",
className: "reset-button",
onClick: () => updateTypography('font_size', defaultValue.font_size, true)
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeGetResponsiveIcons, {
responsive: responsive,
stateToSet: updateIcon
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RangeControl, {
label: __(escapeHTML('Font Size (px)'), 'blogzee'),
value: fontSize[responsive],
onChange: newRange => updateTypography('font_size', newRange),
min: 1,
max: 100,
step: 1
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "typo-field"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "image-rotate",
className: "reset-button",
onClick: () => updateTypography('line_height', defaultValue.line_height, true)
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeGetResponsiveIcons, {
responsive: responsive,
stateToSet: updateIcon
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RangeControl, {
label: __(escapeHTML('Line Height (px)'), 'blogzee'),
value: lineHeight[responsive],
onChange: newRange => updateTypography('line_height', newRange),
min: 1,
max: 100,
step: 1
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "typo-field"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "image-rotate",
className: "reset-button",
onClick: () => updateTypography('letter_spacing', defaultValue.letter_spacing, true)
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeGetResponsiveIcons, {
responsive: responsive,
stateToSet: updateIcon
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RangeControl, {
label: __(escapeHTML('Letter Spacing (px)'), 'blogzee'),
value: letterSpacing[responsive],
onChange: newRange => updateTypography('letter_spacing', newRange),
min: 0,
max: 5,
step: 0.1
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "typo-field field-group"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "inner-field text-transform"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Unset'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: textTransform == 'unset' && 'isActive',
onClick: () => updateTypography('text_transform', 'unset')
}, "N")), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Capitalize'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: textTransform == 'capitalize' && 'isActive',
onClick: () => updateTypography('text_transform', 'capitalize')
}, "Aa")), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Uppercase'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: textTransform == 'uppercase' && 'isActive',
onClick: () => updateTypography('text_transform', 'uppercase')
}, "AA")), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Lowercase'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: textTransform == 'lowercase' && 'isActive',
onClick: () => updateTypography('text_transform', 'lowercase')
}, "aa"))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "inner-field text-decoration"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('None'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: textDecoration == 'none' && 'isActive',
onClick: () => updateTypography('text_decoration', 'none')
}, "Aa")), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Line Through'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: textDecoration == 'line-through' && 'isActive',
onClick: () => updateTypography('text_decoration', 'line-through')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("strike", null, "Aa"))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Underline'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: textDecoration == 'underline' && 'isActive',
onClick: () => updateTypography('text_decoration', 'underline')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("u", null, "Aa"))))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
id: "blogzee-control-tooltip"
}));
};
/***/ }),
/***/ "./src/typographyPreset.js":
/*!*********************************!*\
!*** ./src/typographyPreset.js ***!
\*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ BlogzeeTypographyPreset: () => (/* binding */ BlogzeeTypographyPreset)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _typographyComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typographyComponent */ "./src/typographyComponent.js");
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./src/store.js");
const {
Dashicon,
Button,
TextControl
} = wp.components;
const {
useState,
useEffect
} = wp.element;
const {
escapeHTML
} = wp.escapeHtml;
const {
__
} = wp.i18n;
const {
customize
} = wp;
const {
useDispatch
} = wp.data;
const BlogzeeTypographyPreset = props => {
const [typoPresets, setTypoPresets] = useState(props.value.typographies);
const [presetLabels, setPresetLabels] = useState(props.value.labels);
const {
label,
description,
default: defaultValues
} = customize.settings.controls[props.setting];
const [responsive, setResponsive] = useState('desktop');
const {
setTypographyPreset
} = useDispatch(_store__WEBPACK_IMPORTED_MODULE_3__.store);
useEffect(() => {
if (!presetLabels) return;
let googleFontsUrl = 'https://fonts.googleapis.com/css2?';
let googleFontsUrlQuery;
let linkTag;
if (!document.getElementById('blogzee-typography-presets-fonts')) {
linkTag = document.createElement('link');
linkTag.rel = 'stylesheet';
linkTag.id = 'blogzee-typography-presets-fonts';
} else {
linkTag = document.getElementById('blogzee-typography-presets-fonts');
}
presetLabels.map((current, index) => {
const {
font_weight,
font_family
} = typoPresets[index];
let count = index + 1;
let fontStyle = font_weight.variant === 'italic' ? 'ital,wght@' : 'wght@';
if (count === 1) {
googleFontsUrlQuery = 'family=' + font_family.value + ':' + fontStyle + font_weight.value;
} else {
googleFontsUrlQuery += '&family=' + font_family.value + ':' + fontStyle + font_weight.value;
}
});
linkTag.href = googleFontsUrl + googleFontsUrlQuery;
document.head.appendChild(linkTag);
setTypographyPreset({
typographies: typoPresets,
labels: presetLabels
});
customize.value(props.setting)({
typographies: typoPresets,
labels: presetLabels
});
}, [typoPresets, presetLabels]);
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_2__.blogzeeReflectResponsiveInControl)(setResponsive);
}, []);
/**
* Update the typography state
*
* @since 1.0.0
*/
const updateTypographyState = (property, val, reset = false, presetIndex = null) => {
const responsiveProperties = ['font_size', 'line_height', 'letter_spacing'];
let updatedTypography = {};
if (responsiveProperties.includes(property) && !reset) {
updatedTypography = {
...typoPresets,
[presetIndex]: {
...typoPresets[presetIndex],
[property]: {
...typoPresets[presetIndex][property],
[responsive]: val
}
}
};
} else {
updatedTypography = {
...typoPresets,
[presetIndex]: {
...typoPresets[presetIndex],
[property]: val
}
};
}
setTypoPresets(Object.values(updatedTypography));
};
/**
* update number of palettes
*
* @since 1.0.0
*/
const updateTypoPresetsCount = () => {
setTypoPresets([...typoPresets, typoPresets[typoPresets.length - 1]]);
setPresetLabels([...presetLabels, presetLabels[presetLabels.length - 1]]);
};
/**
* Remove the preset
*
* @since 1.0.0
*/
const removePreset = index => {
setTypoPresets(typoPresets.filter((current, item) => {
return index != item;
}));
setPresetLabels(presetLabels.filter((current, item) => {
return index != item;
}));
};
/**
* Reset the value to their default states
*
* @since 1.0.0
*/
const toDefault = () => {
setTypoPresets(defaultValues.typographies);
setPresetLabels(defaultValues.labels);
};
/**
* Reset values to default
*
* @since 1.0.0
*/
const resetToDefault = index => {
setTypoPresets([...typoPresets.slice(0, index), defaultValues.typographies[index], ...typoPresets.slice(index + 1)]);
setPresetLabels([...presetLabels.slice(0, index), defaultValues.labels[index], ...presetLabels.slice(index + 1)]);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_2__.BlogzeeControlHeader, {
label: label,
description: description
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "image-rotate",
className: "reset-button",
onClick: () => toDefault()
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-wrap"
}, typoPresets.map((preset, index) => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "typography-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "typography-inner-wrap"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "typo-field"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TextControl, {
value: presetLabels[index],
onChange: newLabel => setPresetLabels([...presetLabels.slice(0, index), newLabel, ...presetLabels.slice(index + 1)])
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "typography-item"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "trash-reset-wrapper"
}, typoPresets.length > 1 && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "remove-from-list",
icon: "trash",
onClick: () => removePreset(index)
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "reset-button components-button is-secondary is-small",
icon: "image-rotate",
onClick: () => resetToDefault(index)
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_typographyComponent__WEBPACK_IMPORTED_MODULE_1__.TypographyComponent, {
key: index,
value: preset,
updateTypography: updateTypographyState,
defaultValue: defaultValues.typographies[index],
setResponsive: setResponsive,
responsive: responsive,
isPreset: true,
presetIndex: index
}))));
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TextControl, {
type: "hidden",
id: props.setting + '-reflector',
value: typoPresets.length
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
className: "add-to-list",
variant: "primary",
text: __('Add New', 'blogzee'),
isSmall: true,
icon: "plus",
onClick: () => updateTypoPresetsCount()
}));
};
/***/ }),
/***/ "./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js":
/*!**********************************************************************************!*\
!*** ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***!
\**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var reactIs = __webpack_require__(/*! react-is */ "./node_modules/hoist-non-react-statics/node_modules/react-is/index.js");
/**
* Copyright 2015, Yahoo! Inc.
* Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
*/
var REACT_STATICS = {
childContextTypes: true,
contextType: true,
contextTypes: true,
defaultProps: true,
displayName: true,
getDefaultProps: true,
getDerivedStateFromError: true,
getDerivedStateFromProps: true,
mixins: true,
propTypes: true,
type: true
};
var KNOWN_STATICS = {
name: true,
length: true,
prototype: true,
caller: true,
callee: true,
arguments: true,
arity: true
};
var FORWARD_REF_STATICS = {
'$$typeof': true,
render: true,
defaultProps: true,
displayName: true,
propTypes: true
};
var MEMO_STATICS = {
'$$typeof': true,
compare: true,
defaultProps: true,
displayName: true,
propTypes: true,
type: true
};
var TYPE_STATICS = {};
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
function getStatics(component) {
// React v16.11 and below
if (reactIs.isMemo(component)) {
return MEMO_STATICS;
} // React v16.12 and above
return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
}
var defineProperty = Object.defineProperty;
var getOwnPropertyNames = Object.getOwnPropertyNames;
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var getPrototypeOf = Object.getPrototypeOf;
var objectPrototype = Object.prototype;
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
if (typeof sourceComponent !== 'string') {
// don't hoist over string (html) components
if (objectPrototype) {
var inheritedComponent = getPrototypeOf(sourceComponent);
if (inheritedComponent && inheritedComponent !== objectPrototype) {
hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
}
}
var keys = getOwnPropertyNames(sourceComponent);
if (getOwnPropertySymbols) {
keys = keys.concat(getOwnPropertySymbols(sourceComponent));
}
var targetStatics = getStatics(targetComponent);
var sourceStatics = getStatics(sourceComponent);
for (var i = 0; i < keys.length; ++i) {
var key = keys[i];
if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
try {
// Avoid failures from read-only properties
defineProperty(targetComponent, key, descriptor);
} catch (e) {}
}
}
}
return targetComponent;
}
module.exports = hoistNonReactStatics;
/***/ }),
/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js":
/*!************************************************************************************************!*\
!*** ./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js ***!
\************************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {
/** @license React v16.13.1
* react-is.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
if (true) {
(function() {
'use strict';
// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
// (unstable) APIs that have been removed. Can we remove the symbols?
var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
function isValidElementType(type) {
return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
}
function typeOf(object) {
if (typeof object === 'object' && object !== null) {
var $$typeof = object.$$typeof;
switch ($$typeof) {
case REACT_ELEMENT_TYPE:
var type = object.type;
switch (type) {
case REACT_ASYNC_MODE_TYPE:
case REACT_CONCURRENT_MODE_TYPE:
case REACT_FRAGMENT_TYPE:
case REACT_PROFILER_TYPE:
case REACT_STRICT_MODE_TYPE:
case REACT_SUSPENSE_TYPE:
return type;
default:
var $$typeofType = type && type.$$typeof;
switch ($$typeofType) {
case REACT_CONTEXT_TYPE:
case REACT_FORWARD_REF_TYPE:
case REACT_LAZY_TYPE:
case REACT_MEMO_TYPE:
case REACT_PROVIDER_TYPE:
return $$typeofType;
default:
return $$typeof;
}
}
case REACT_PORTAL_TYPE:
return $$typeof;
}
}
return undefined;
} // AsyncMode is deprecated along with isAsyncMode
var AsyncMode = REACT_ASYNC_MODE_TYPE;
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
var ContextConsumer = REACT_CONTEXT_TYPE;
var ContextProvider = REACT_PROVIDER_TYPE;
var Element = REACT_ELEMENT_TYPE;
var ForwardRef = REACT_FORWARD_REF_TYPE;
var Fragment = REACT_FRAGMENT_TYPE;
var Lazy = REACT_LAZY_TYPE;
var Memo = REACT_MEMO_TYPE;
var Portal = REACT_PORTAL_TYPE;
var Profiler = REACT_PROFILER_TYPE;
var StrictMode = REACT_STRICT_MODE_TYPE;
var Suspense = REACT_SUSPENSE_TYPE;
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
function isAsyncMode(object) {
{
if (!hasWarnedAboutDeprecatedIsAsyncMode) {
hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
}
}
return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
}
function isConcurrentMode(object) {
return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
}
function isContextConsumer(object) {
return typeOf(object) === REACT_CONTEXT_TYPE;
}
function isContextProvider(object) {
return typeOf(object) === REACT_PROVIDER_TYPE;
}
function isElement(object) {
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
}
function isForwardRef(object) {
return typeOf(object) === REACT_FORWARD_REF_TYPE;
}
function isFragment(object) {
return typeOf(object) === REACT_FRAGMENT_TYPE;
}
function isLazy(object) {
return typeOf(object) === REACT_LAZY_TYPE;
}
function isMemo(object) {
return typeOf(object) === REACT_MEMO_TYPE;
}
function isPortal(object) {
return typeOf(object) === REACT_PORTAL_TYPE;
}
function isProfiler(object) {
return typeOf(object) === REACT_PROFILER_TYPE;
}
function isStrictMode(object) {
return typeOf(object) === REACT_STRICT_MODE_TYPE;
}
function isSuspense(object) {
return typeOf(object) === REACT_SUSPENSE_TYPE;
}
exports.AsyncMode = AsyncMode;
exports.ConcurrentMode = ConcurrentMode;
exports.ContextConsumer = ContextConsumer;
exports.ContextProvider = ContextProvider;
exports.Element = Element;
exports.ForwardRef = ForwardRef;
exports.Fragment = Fragment;
exports.Lazy = Lazy;
exports.Memo = Memo;
exports.Portal = Portal;
exports.Profiler = Profiler;
exports.StrictMode = StrictMode;
exports.Suspense = Suspense;
exports.isAsyncMode = isAsyncMode;
exports.isConcurrentMode = isConcurrentMode;
exports.isContextConsumer = isContextConsumer;
exports.isContextProvider = isContextProvider;
exports.isElement = isElement;
exports.isForwardRef = isForwardRef;
exports.isFragment = isFragment;
exports.isLazy = isLazy;
exports.isMemo = isMemo;
exports.isPortal = isPortal;
exports.isProfiler = isProfiler;
exports.isStrictMode = isStrictMode;
exports.isSuspense = isSuspense;
exports.isValidElementType = isValidElementType;
exports.typeOf = typeOf;
})();
}
/***/ }),
/***/ "./node_modules/hoist-non-react-statics/node_modules/react-is/index.js":
/*!*****************************************************************************!*\
!*** ./node_modules/hoist-non-react-statics/node_modules/react-is/index.js ***!
\*****************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
if (false) {} else {
module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ "./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js");
}
/***/ }),
/***/ "./node_modules/memoize-one/dist/memoize-one.esm.js":
/*!**********************************************************!*\
!*** ./node_modules/memoize-one/dist/memoize-one.esm.js ***!
\**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ memoizeOne)
/* harmony export */ });
var safeIsNaN = Number.isNaN ||
function ponyfill(value) {
return typeof value === 'number' && value !== value;
};
function isEqual(first, second) {
if (first === second) {
return true;
}
if (safeIsNaN(first) && safeIsNaN(second)) {
return true;
}
return false;
}
function areInputsEqual(newInputs, lastInputs) {
if (newInputs.length !== lastInputs.length) {
return false;
}
for (var i = 0; i < newInputs.length; i++) {
if (!isEqual(newInputs[i], lastInputs[i])) {
return false;
}
}
return true;
}
function memoizeOne(resultFn, isEqual) {
if (isEqual === void 0) { isEqual = areInputsEqual; }
var cache = null;
function memoized() {
var newArgs = [];
for (var _i = 0; _i < arguments.length; _i++) {
newArgs[_i] = arguments[_i];
}
if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {
return cache.lastResult;
}
var lastResult = resultFn.apply(this, newArgs);
cache = {
lastResult: lastResult,
lastArgs: newArgs,
lastThis: this,
};
return lastResult;
}
memoized.clear = function clear() {
cache = null;
};
return memoized;
}
/***/ }),
/***/ "./node_modules/react-select/async/dist/react-select-async.esm.js":
/*!************************************************************************!*\
!*** ./node_modules/react-select/async/dist/react-select-async.esm.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ AsyncSelect$1),
/* harmony export */ useAsync: () => (/* reexport safe */ _dist_useAsync_ba7c6b77_esm_js__WEBPACK_IMPORTED_MODULE_2__.u)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _dist_Select_49a62830_esm_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../dist/Select-49a62830.esm.js */ "./node_modules/react-select/dist/Select-49a62830.esm.js");
/* harmony import */ var _dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../../dist/useStateManager-7e1e8489.esm.js */ "./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js");
/* harmony import */ var _dist_useAsync_ba7c6b77_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dist/useAsync-ba7c6b77.esm.js */ "./node_modules/react-select/dist/useAsync-ba7c6b77.esm.js");
/* harmony import */ var _babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/objectSpread2 */ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js");
/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js");
/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js");
/* harmony import */ var _babel_runtime_helpers_createSuper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/createSuper */ "./node_modules/@babel/runtime/helpers/esm/createSuper.js");
/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js");
/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");
/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js");
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react-dom */ "react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! use-isomorphic-layout-effect */ "./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js");
var AsyncSelect = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {
var stateManagedProps = (0,_dist_useAsync_ba7c6b77_esm_js__WEBPACK_IMPORTED_MODULE_2__.u)(props);
var selectProps = (0,_dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_16__.u)(stateManagedProps);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_dist_Select_49a62830_esm_js__WEBPACK_IMPORTED_MODULE_17__.S, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({
ref: ref
}, selectProps));
});
var AsyncSelect$1 = AsyncSelect;
/***/ }),
/***/ "./node_modules/react-select/dist/Select-49a62830.esm.js":
/*!***************************************************************!*\
!*** ./node_modules/react-select/dist/Select-49a62830.esm.js ***!
\***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ S: () => (/* binding */ Select),
/* harmony export */ a: () => (/* binding */ defaultProps),
/* harmony export */ b: () => (/* binding */ getOptionLabel$1),
/* harmony export */ c: () => (/* binding */ createFilter),
/* harmony export */ d: () => (/* binding */ defaultTheme),
/* harmony export */ g: () => (/* binding */ getOptionValue$1),
/* harmony export */ m: () => (/* binding */ mergeStyles)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js");
/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js");
/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js");
/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ "./node_modules/@babel/runtime/helpers/esm/createSuper.js");
/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./index-a301f526.esm.js */ "./node_modules/react-select/dist/index-a301f526.esm.js");
/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @emotion/react */ "./node_modules/@emotion/react/dist/emotion-react.browser.esm.js");
/* harmony import */ var memoize_one__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! memoize-one */ "./node_modules/memoize-one/dist/memoize-one.esm.js");
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");
function _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
// Assistive text to describe visual elements. Hidden for sighted users.
var _ref = false ? 0 : {
name: "1f43avz-a11yText-A11yText",
styles: "label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2
};
var A11yText = function A11yText(props) {
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("span", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({
css: _ref
}, props));
};
var A11yText$1 = A11yText;
var defaultAriaLiveMessages = {
guidance: function guidance(props) {
var isSearchable = props.isSearchable,
isMulti = props.isMulti,
tabSelectsValue = props.tabSelectsValue,
context = props.context,
isInitialFocus = props.isInitialFocus;
switch (context) {
case 'menu':
return "Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu".concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', ".");
case 'input':
return isInitialFocus ? "".concat(props['aria-label'] || 'Select', " is focused ").concat(isSearchable ? ',type to refine list' : '', ", press Down to open the menu, ").concat(isMulti ? ' press left to focus selected values' : '') : '';
case 'value':
return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';
default:
return '';
}
},
onChange: function onChange(props) {
var action = props.action,
_props$label = props.label,
label = _props$label === void 0 ? '' : _props$label,
labels = props.labels,
isDisabled = props.isDisabled;
switch (action) {
case 'deselect-option':
case 'pop-value':
case 'remove-value':
return "option ".concat(label, ", deselected.");
case 'clear':
return 'All selected options have been cleared.';
case 'initial-input-focus':
return "option".concat(labels.length > 1 ? 's' : '', " ").concat(labels.join(','), ", selected.");
case 'select-option':
return isDisabled ? "option ".concat(label, " is disabled. Select another option.") : "option ".concat(label, ", selected.");
default:
return '';
}
},
onFocus: function onFocus(props) {
var context = props.context,
focused = props.focused,
options = props.options,
_props$label2 = props.label,
label = _props$label2 === void 0 ? '' : _props$label2,
selectValue = props.selectValue,
isDisabled = props.isDisabled,
isSelected = props.isSelected,
isAppleDevice = props.isAppleDevice;
var getArrayIndex = function getArrayIndex(arr, item) {
return arr && arr.length ? "".concat(arr.indexOf(item) + 1, " of ").concat(arr.length) : '';
};
if (context === 'value' && selectValue) {
return "value ".concat(label, " focused, ").concat(getArrayIndex(selectValue, focused), ".");
}
if (context === 'menu' && isAppleDevice) {
var disabled = isDisabled ? ' disabled' : '';
var status = "".concat(isSelected ? ' selected' : '').concat(disabled);
return "".concat(label).concat(status, ", ").concat(getArrayIndex(options, focused), ".");
}
return '';
},
onFilter: function onFilter(props) {
var inputValue = props.inputValue,
resultsMessage = props.resultsMessage;
return "".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', ".");
}
};
var LiveRegion = function LiveRegion(props) {
var ariaSelection = props.ariaSelection,
focusedOption = props.focusedOption,
focusedValue = props.focusedValue,
focusableOptions = props.focusableOptions,
isFocused = props.isFocused,
selectValue = props.selectValue,
selectProps = props.selectProps,
id = props.id,
isAppleDevice = props.isAppleDevice;
var ariaLiveMessages = selectProps.ariaLiveMessages,
getOptionLabel = selectProps.getOptionLabel,
inputValue = selectProps.inputValue,
isMulti = selectProps.isMulti,
isOptionDisabled = selectProps.isOptionDisabled,
isSearchable = selectProps.isSearchable,
menuIsOpen = selectProps.menuIsOpen,
options = selectProps.options,
screenReaderStatus = selectProps.screenReaderStatus,
tabSelectsValue = selectProps.tabSelectsValue,
isLoading = selectProps.isLoading;
var ariaLabel = selectProps['aria-label'];
var ariaLive = selectProps['aria-live'];
// Update aria live message configuration when prop changes
var messages = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({}, defaultAriaLiveMessages), ariaLiveMessages || {});
}, [ariaLiveMessages]);
// Update aria live selected option when prop changes
var ariaSelected = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {
var message = '';
if (ariaSelection && messages.onChange) {
var option = ariaSelection.option,
selectedOptions = ariaSelection.options,
removedValue = ariaSelection.removedValue,
removedValues = ariaSelection.removedValues,
value = ariaSelection.value;
// select-option when !isMulti does not return option so we assume selected option is value
var asOption = function asOption(val) {
return !Array.isArray(val) ? val : null;
};
// If there is just one item from the action then get its label
var selected = removedValue || option || asOption(value);
var label = selected ? getOptionLabel(selected) : '';
// If there are multiple items from the action then return an array of labels
var multiSelected = selectedOptions || removedValues || undefined;
var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];
var onChangeProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({
// multiSelected items are usually items that have already been selected
// or set by the user as a default value so we assume they are not disabled
isDisabled: selected && isOptionDisabled(selected, selectValue),
label: label,
labels: labels
}, ariaSelection);
message = messages.onChange(onChangeProps);
}
return message;
}, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);
var ariaFocused = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {
var focusMsg = '';
var focused = focusedOption || focusedValue;
var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));
if (focused && messages.onFocus) {
var onFocusProps = {
focused: focused,
label: getOptionLabel(focused),
isDisabled: isOptionDisabled(focused, selectValue),
isSelected: isSelected,
options: focusableOptions,
context: focused === focusedOption ? 'menu' : 'value',
selectValue: selectValue,
isAppleDevice: isAppleDevice
};
focusMsg = messages.onFocus(onFocusProps);
}
return focusMsg;
}, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue, isAppleDevice]);
var ariaResults = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {
var resultsMsg = '';
if (menuIsOpen && options.length && !isLoading && messages.onFilter) {
var resultsMessage = screenReaderStatus({
count: focusableOptions.length
});
resultsMsg = messages.onFilter({
inputValue: inputValue,
resultsMessage: resultsMessage
});
}
return resultsMsg;
}, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus, isLoading]);
var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';
var ariaGuidance = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {
var guidanceMsg = '';
if (messages.guidance) {
var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';
guidanceMsg = messages.guidance({
'aria-label': ariaLabel,
context: context,
isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),
isMulti: isMulti,
isSearchable: isSearchable,
tabSelectsValue: tabSelectsValue,
isInitialFocus: isInitialFocus
});
}
return guidanceMsg;
}, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue, isInitialFocus]);
var ScreenReaderText = (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null, (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("span", {
id: "aria-selection"
}, ariaSelected), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("span", {
id: "aria-focused"
}, ariaFocused), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("span", {
id: "aria-results"
}, ariaResults), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("span", {
id: "aria-guidance"
}, ariaGuidance));
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null, (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(A11yText$1, {
id: id
}, isInitialFocus && ScreenReaderText), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(A11yText$1, {
"aria-live": ariaLive,
"aria-atomic": "false",
"aria-relevant": "additions text",
role: "log"
}, isFocused && !isInitialFocus && ScreenReaderText));
};
var LiveRegion$1 = LiveRegion;
var diacritics = [{
base: 'A',
letters: "A\u24B6\uFF21\xC0\xC1\xC2\u1EA6\u1EA4\u1EAA\u1EA8\xC3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\xC4\u01DE\u1EA2\xC5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F"
}, {
base: 'AA',
letters: "\uA732"
}, {
base: 'AE',
letters: "\xC6\u01FC\u01E2"
}, {
base: 'AO',
letters: "\uA734"
}, {
base: 'AU',
letters: "\uA736"
}, {
base: 'AV',
letters: "\uA738\uA73A"
}, {
base: 'AY',
letters: "\uA73C"
}, {
base: 'B',
letters: "B\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181"
}, {
base: 'C',
letters: "C\u24B8\uFF23\u0106\u0108\u010A\u010C\xC7\u1E08\u0187\u023B\uA73E"
}, {
base: 'D',
letters: "D\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779"
}, {
base: 'DZ',
letters: "\u01F1\u01C4"
}, {
base: 'Dz',
letters: "\u01F2\u01C5"
}, {
base: 'E',
letters: "E\u24BA\uFF25\xC8\xC9\xCA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\xCB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E"
}, {
base: 'F',
letters: "F\u24BB\uFF26\u1E1E\u0191\uA77B"
}, {
base: 'G',
letters: "G\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E"
}, {
base: 'H',
letters: "H\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D"
}, {
base: 'I',
letters: "I\u24BE\uFF29\xCC\xCD\xCE\u0128\u012A\u012C\u0130\xCF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197"
}, {
base: 'J',
letters: "J\u24BF\uFF2A\u0134\u0248"
}, {
base: 'K',
letters: "K\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2"
}, {
base: 'L',
letters: "L\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780"
}, {
base: 'LJ',
letters: "\u01C7"
}, {
base: 'Lj',
letters: "\u01C8"
}, {
base: 'M',
letters: "M\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C"
}, {
base: 'N',
letters: "N\u24C3\uFF2E\u01F8\u0143\xD1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4"
}, {
base: 'NJ',
letters: "\u01CA"
}, {
base: 'Nj',
letters: "\u01CB"
}, {
base: 'O',
letters: "O\u24C4\uFF2F\xD2\xD3\xD4\u1ED2\u1ED0\u1ED6\u1ED4\xD5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\xD6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\xD8\u01FE\u0186\u019F\uA74A\uA74C"
}, {
base: 'OI',
letters: "\u01A2"
}, {
base: 'OO',
letters: "\uA74E"
}, {
base: 'OU',
letters: "\u0222"
}, {
base: 'P',
letters: "P\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754"
}, {
base: 'Q',
letters: "Q\u24C6\uFF31\uA756\uA758\u024A"
}, {
base: 'R',
letters: "R\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782"
}, {
base: 'S',
letters: "S\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784"
}, {
base: 'T',
letters: "T\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786"
}, {
base: 'TZ',
letters: "\uA728"
}, {
base: 'U',
letters: "U\u24CA\uFF35\xD9\xDA\xDB\u0168\u1E78\u016A\u1E7A\u016C\xDC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244"
}, {
base: 'V',
letters: "V\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245"
}, {
base: 'VY',
letters: "\uA760"
}, {
base: 'W',
letters: "W\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72"
}, {
base: 'X',
letters: "X\u24CD\uFF38\u1E8A\u1E8C"
}, {
base: 'Y',
letters: "Y\u24CE\uFF39\u1EF2\xDD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE"
}, {
base: 'Z',
letters: "Z\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762"
}, {
base: 'a',
letters: "a\u24D0\uFF41\u1E9A\xE0\xE1\xE2\u1EA7\u1EA5\u1EAB\u1EA9\xE3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\xE4\u01DF\u1EA3\xE5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250"
}, {
base: 'aa',
letters: "\uA733"
}, {
base: 'ae',
letters: "\xE6\u01FD\u01E3"
}, {
base: 'ao',
letters: "\uA735"
}, {
base: 'au',
letters: "\uA737"
}, {
base: 'av',
letters: "\uA739\uA73B"
}, {
base: 'ay',
letters: "\uA73D"
}, {
base: 'b',
letters: "b\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253"
}, {
base: 'c',
letters: "c\u24D2\uFF43\u0107\u0109\u010B\u010D\xE7\u1E09\u0188\u023C\uA73F\u2184"
}, {
base: 'd',
letters: "d\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A"
}, {
base: 'dz',
letters: "\u01F3\u01C6"
}, {
base: 'e',
letters: "e\u24D4\uFF45\xE8\xE9\xEA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\xEB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD"
}, {
base: 'f',
letters: "f\u24D5\uFF46\u1E1F\u0192\uA77C"
}, {
base: 'g',
letters: "g\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F"
}, {
base: 'h',
letters: "h\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265"
}, {
base: 'hv',
letters: "\u0195"
}, {
base: 'i',
letters: "i\u24D8\uFF49\xEC\xED\xEE\u0129\u012B\u012D\xEF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131"
}, {
base: 'j',
letters: "j\u24D9\uFF4A\u0135\u01F0\u0249"
}, {
base: 'k',
letters: "k\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3"
}, {
base: 'l',
letters: "l\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747"
}, {
base: 'lj',
letters: "\u01C9"
}, {
base: 'm',
letters: "m\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F"
}, {
base: 'n',
letters: "n\u24DD\uFF4E\u01F9\u0144\xF1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5"
}, {
base: 'nj',
letters: "\u01CC"
}, {
base: 'o',
letters: "o\u24DE\uFF4F\xF2\xF3\xF4\u1ED3\u1ED1\u1ED7\u1ED5\xF5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\xF6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\xF8\u01FF\u0254\uA74B\uA74D\u0275"
}, {
base: 'oi',
letters: "\u01A3"
}, {
base: 'ou',
letters: "\u0223"
}, {
base: 'oo',
letters: "\uA74F"
}, {
base: 'p',
letters: "p\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755"
}, {
base: 'q',
letters: "q\u24E0\uFF51\u024B\uA757\uA759"
}, {
base: 'r',
letters: "r\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783"
}, {
base: 's',
letters: "s\u24E2\uFF53\xDF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B"
}, {
base: 't',
letters: "t\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787"
}, {
base: 'tz',
letters: "\uA729"
}, {
base: 'u',
letters: "u\u24E4\uFF55\xF9\xFA\xFB\u0169\u1E79\u016B\u1E7B\u016D\xFC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289"
}, {
base: 'v',
letters: "v\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C"
}, {
base: 'vy',
letters: "\uA761"
}, {
base: 'w',
letters: "w\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73"
}, {
base: 'x',
letters: "x\u24E7\uFF58\u1E8B\u1E8D"
}, {
base: 'y',
letters: "y\u24E8\uFF59\u1EF3\xFD\u0177\u1EF9\u0233\u1E8F\xFF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF"
}, {
base: 'z',
letters: "z\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763"
}];
var anyDiacritic = new RegExp('[' + diacritics.map(function (d) {
return d.letters;
}).join('') + ']', 'g');
var diacriticToBase = {};
for (var i = 0; i < diacritics.length; i++) {
var diacritic = diacritics[i];
for (var j = 0; j < diacritic.letters.length; j++) {
diacriticToBase[diacritic.letters[j]] = diacritic.base;
}
}
var stripDiacritics = function stripDiacritics(str) {
return str.replace(anyDiacritic, function (match) {
return diacriticToBase[match];
});
};
var memoizedStripDiacriticsForInput = (0,memoize_one__WEBPACK_IMPORTED_MODULE_10__["default"])(stripDiacritics);
var trimString = function trimString(str) {
return str.replace(/^\s+|\s+$/g, '');
};
var defaultStringify = function defaultStringify(option) {
return "".concat(option.label, " ").concat(option.value);
};
var createFilter = function createFilter(config) {
return function (option, rawInput) {
// eslint-disable-next-line no-underscore-dangle
if (option.data.__isNew__) return true;
var _ignoreCase$ignoreAcc = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({
ignoreCase: true,
ignoreAccents: true,
stringify: defaultStringify,
trim: true,
matchFrom: 'any'
}, config),
ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,
ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,
stringify = _ignoreCase$ignoreAcc.stringify,
trim = _ignoreCase$ignoreAcc.trim,
matchFrom = _ignoreCase$ignoreAcc.matchFrom;
var input = trim ? trimString(rawInput) : rawInput;
var candidate = trim ? trimString(stringify(option)) : stringify(option);
if (ignoreCase) {
input = input.toLowerCase();
candidate = candidate.toLowerCase();
}
if (ignoreAccents) {
input = memoizedStripDiacriticsForInput(input);
candidate = stripDiacritics(candidate);
}
return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;
};
};
var _excluded = ["innerRef"];
function DummyInput(_ref) {
var innerRef = _ref.innerRef,
props = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_8__["default"])(_ref, _excluded);
// Remove animation props not meant for HTML elements
var filteredProps = (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.r)(props, 'onExited', 'in', 'enter', 'exit', 'appear');
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("input", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({
ref: innerRef
}, filteredProps, {
css: /*#__PURE__*/(0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.css)({
label: 'dummyInput',
// get rid of any default styles
background: 0,
border: 0,
// important! this hides the flashing cursor
caretColor: 'transparent',
fontSize: 'inherit',
gridArea: '1 / 1 / 2 / 3',
outline: 0,
padding: 0,
// important! without `width` browsers won't allow focus
width: 1,
// remove cursor on desktop
color: 'transparent',
// remove cursor on mobile whilst maintaining "scroll into view" behaviour
left: -100,
opacity: 0,
position: 'relative',
transform: 'scale(.01)'
}, false ? 0 : ";label:DummyInput;", false ? 0 : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */")
}));
}
var cancelScroll = function cancelScroll(event) {
if (event.cancelable) event.preventDefault();
event.stopPropagation();
};
function useScrollCapture(_ref) {
var isEnabled = _ref.isEnabled,
onBottomArrive = _ref.onBottomArrive,
onBottomLeave = _ref.onBottomLeave,
onTopArrive = _ref.onTopArrive,
onTopLeave = _ref.onTopLeave;
var isBottom = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(false);
var isTop = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(false);
var touchStart = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(0);
var scrollTarget = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(null);
var handleEventDelta = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event, delta) {
if (scrollTarget.current === null) return;
var _scrollTarget$current = scrollTarget.current,
scrollTop = _scrollTarget$current.scrollTop,
scrollHeight = _scrollTarget$current.scrollHeight,
clientHeight = _scrollTarget$current.clientHeight;
var target = scrollTarget.current;
var isDeltaPositive = delta > 0;
var availableScroll = scrollHeight - clientHeight - scrollTop;
var shouldCancelScroll = false;
// reset bottom/top flags
if (availableScroll > delta && isBottom.current) {
if (onBottomLeave) onBottomLeave(event);
isBottom.current = false;
}
if (isDeltaPositive && isTop.current) {
if (onTopLeave) onTopLeave(event);
isTop.current = false;
}
// bottom limit
if (isDeltaPositive && delta > availableScroll) {
if (onBottomArrive && !isBottom.current) {
onBottomArrive(event);
}
target.scrollTop = scrollHeight;
shouldCancelScroll = true;
isBottom.current = true;
// top limit
} else if (!isDeltaPositive && -delta > scrollTop) {
if (onTopArrive && !isTop.current) {
onTopArrive(event);
}
target.scrollTop = 0;
shouldCancelScroll = true;
isTop.current = true;
}
// cancel scroll
if (shouldCancelScroll) {
cancelScroll(event);
}
}, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);
var onWheel = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event) {
handleEventDelta(event, event.deltaY);
}, [handleEventDelta]);
var onTouchStart = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event) {
// set touch start so we can calculate touchmove delta
touchStart.current = event.changedTouches[0].clientY;
}, []);
var onTouchMove = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event) {
var deltaY = touchStart.current - event.changedTouches[0].clientY;
handleEventDelta(event, deltaY);
}, [handleEventDelta]);
var startListening = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (el) {
// bail early if no element is available to attach to
if (!el) return;
var notPassive = _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.s ? {
passive: false
} : false;
el.addEventListener('wheel', onWheel, notPassive);
el.addEventListener('touchstart', onTouchStart, notPassive);
el.addEventListener('touchmove', onTouchMove, notPassive);
}, [onTouchMove, onTouchStart, onWheel]);
var stopListening = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (el) {
// bail early if no element is available to detach from
if (!el) return;
el.removeEventListener('wheel', onWheel, false);
el.removeEventListener('touchstart', onTouchStart, false);
el.removeEventListener('touchmove', onTouchMove, false);
}, [onTouchMove, onTouchStart, onWheel]);
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (!isEnabled) return;
var element = scrollTarget.current;
startListening(element);
return function () {
stopListening(element);
};
}, [isEnabled, startListening, stopListening]);
return function (element) {
scrollTarget.current = element;
};
}
var STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];
var LOCK_STYLES = {
boxSizing: 'border-box',
// account for possible declaration `width: 100%;` on body
overflow: 'hidden',
position: 'relative',
height: '100%'
};
function preventTouchMove(e) {
e.preventDefault();
}
function allowTouchMove(e) {
e.stopPropagation();
}
function preventInertiaScroll() {
var top = this.scrollTop;
var totalScroll = this.scrollHeight;
var currentScroll = top + this.offsetHeight;
if (top === 0) {
this.scrollTop = 1;
} else if (currentScroll === totalScroll) {
this.scrollTop = top - 1;
}
}
// `ontouchstart` check works on most browsers
// `maxTouchPoints` works on IE10/11 and Surface
function isTouchDevice() {
return 'ontouchstart' in window || navigator.maxTouchPoints;
}
var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
var activeScrollLocks = 0;
var listenerOptions = {
capture: false,
passive: false
};
function useScrollLock(_ref) {
var isEnabled = _ref.isEnabled,
_ref$accountForScroll = _ref.accountForScrollbars,
accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;
var originalStyles = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)({});
var scrollTarget = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(null);
var addScrollLock = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (touchScrollTarget) {
if (!canUseDOM) return;
var target = document.body;
var targetStyle = target && target.style;
if (accountForScrollbars) {
// store any styles already applied to the body
STYLE_KEYS.forEach(function (key) {
var val = targetStyle && targetStyle[key];
originalStyles.current[key] = val;
});
}
// apply the lock styles and padding if this is the first scroll lock
if (accountForScrollbars && activeScrollLocks < 1) {
var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;
var clientWidth = document.body ? document.body.clientWidth : 0;
var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;
Object.keys(LOCK_STYLES).forEach(function (key) {
var val = LOCK_STYLES[key];
if (targetStyle) {
targetStyle[key] = val;
}
});
if (targetStyle) {
targetStyle.paddingRight = "".concat(adjustedPadding, "px");
}
}
// account for touch devices
if (target && isTouchDevice()) {
// Mobile Safari ignores { overflow: hidden } declaration on the body.
target.addEventListener('touchmove', preventTouchMove, listenerOptions);
// Allow scroll on provided target
if (touchScrollTarget) {
touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);
touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);
}
}
// increment active scroll locks
activeScrollLocks += 1;
}, [accountForScrollbars]);
var removeScrollLock = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (touchScrollTarget) {
if (!canUseDOM) return;
var target = document.body;
var targetStyle = target && target.style;
// safely decrement active scroll locks
activeScrollLocks = Math.max(activeScrollLocks - 1, 0);
// reapply original body styles, if any
if (accountForScrollbars && activeScrollLocks < 1) {
STYLE_KEYS.forEach(function (key) {
var val = originalStyles.current[key];
if (targetStyle) {
targetStyle[key] = val;
}
});
}
// remove touch listeners
if (target && isTouchDevice()) {
target.removeEventListener('touchmove', preventTouchMove, listenerOptions);
if (touchScrollTarget) {
touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);
touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);
}
}
}, [accountForScrollbars]);
(0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {
if (!isEnabled) return;
var element = scrollTarget.current;
addScrollLock(element);
return function () {
removeScrollLock(element);
};
}, [isEnabled, addScrollLock, removeScrollLock]);
return function (element) {
scrollTarget.current = element;
};
}
function _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
var blurSelectInput = function blurSelectInput(event) {
var element = event.target;
return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();
};
var _ref2$1 = false ? 0 : {
name: "bp8cua-ScrollManager",
styles: "position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2ssIE1vdXNlRXZlbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgIChlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxNYW5hZ2VyKHtcbiAgY2hpbGRyZW4sXG4gIGxvY2tFbmFibGVkLFxuICBjYXB0dXJlRW5hYmxlZCA9IHRydWUsXG4gIG9uQm90dG9tQXJyaXZlLFxuICBvbkJvdHRvbUxlYXZlLFxuICBvblRvcEFycml2ZSxcbiAgb25Ub3BMZWF2ZSxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHNldFNjcm9sbENhcHR1cmVUYXJnZXQgPSB1c2VTY3JvbGxDYXB0dXJlKHtcbiAgICBpc0VuYWJsZWQ6IGNhcHR1cmVFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZSxcbiAgfSk7XG4gIGNvbnN0IHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHsgaXNFbmFibGVkOiBsb2NrRW5hYmxlZCB9KTtcblxuICBjb25zdCB0YXJnZXRSZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PiA9IChlbGVtZW50KSA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1
};
function ScrollManager(_ref) {
var children = _ref.children,
lockEnabled = _ref.lockEnabled,
_ref$captureEnabled = _ref.captureEnabled,
captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,
onBottomArrive = _ref.onBottomArrive,
onBottomLeave = _ref.onBottomLeave,
onTopArrive = _ref.onTopArrive,
onTopLeave = _ref.onTopLeave;
var setScrollCaptureTarget = useScrollCapture({
isEnabled: captureEnabled,
onBottomArrive: onBottomArrive,
onBottomLeave: onBottomLeave,
onTopArrive: onTopArrive,
onTopLeave: onTopLeave
});
var setScrollLockTarget = useScrollLock({
isEnabled: lockEnabled
});
var targetRef = function targetRef(element) {
setScrollCaptureTarget(element);
setScrollLockTarget(element);
};
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null, lockEnabled && (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
onClick: blurSelectInput,
css: _ref2$1
}), children(targetRef));
}
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
var _ref2 = false ? 0 : {
name: "5kkxb2-requiredInput-RequiredInput",
styles: "label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcXVpcmVkSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNJIiwiZmlsZSI6IlJlcXVpcmVkSW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciwgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmNvbnN0IFJlcXVpcmVkSW5wdXQ6IEZ1bmN0aW9uQ29tcG9uZW50PHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG59PiA9ICh7IG5hbWUsIG9uRm9jdXMgfSkgPT4gKFxuICA8aW5wdXRcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdGFiSW5kZXg9ey0xfVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAncmVxdWlyZWRJbnB1dCcsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgIH19XG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgdmFsdWU9XCJcIlxuICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cbiAgLz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVpcmVkSW5wdXQ7XG4iXX0= */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
};
var RequiredInput = function RequiredInput(_ref) {
var name = _ref.name,
onFocus = _ref.onFocus;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)("input", {
required: true,
name: name,
tabIndex: -1,
"aria-hidden": "true",
onFocus: onFocus,
css: _ref2
// Prevent `Switching from uncontrolled to controlled` error
,
value: "",
onChange: function onChange() {}
});
};
var RequiredInput$1 = RequiredInput;
/// <reference types="user-agent-data-types" />
function testPlatform(re) {
var _window$navigator$use;
return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window$navigator$use = window.navigator['userAgentData']) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.platform) || window.navigator.platform) : false;
}
function isIPhone() {
return testPlatform(/^iPhone/i);
}
function isMac() {
return testPlatform(/^Mac/i);
}
function isIPad() {
return testPlatform(/^iPad/i) ||
// iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.
isMac() && navigator.maxTouchPoints > 1;
}
function isIOS() {
return isIPhone() || isIPad();
}
function isAppleDevice() {
return isMac() || isIOS();
}
var formatGroupLabel = function formatGroupLabel(group) {
return group.label;
};
var getOptionLabel$1 = function getOptionLabel(option) {
return option.label;
};
var getOptionValue$1 = function getOptionValue(option) {
return option.value;
};
var isOptionDisabled = function isOptionDisabled(option) {
return !!option.isDisabled;
};
var defaultStyles = {
clearIndicator: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.a,
container: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.b,
control: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.d,
dropdownIndicator: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.e,
group: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.g,
groupHeading: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.f,
indicatorsContainer: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.i,
indicatorSeparator: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.h,
input: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.j,
loadingIndicator: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.l,
loadingMessage: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.k,
menu: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.m,
menuList: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.n,
menuPortal: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.o,
multiValue: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.p,
multiValueLabel: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.q,
multiValueRemove: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.t,
noOptionsMessage: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.u,
option: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.v,
placeholder: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.w,
singleValue: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.x,
valueContainer: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.y
};
// Merge Utility
// Allows consumers to extend a base Select with additional styles
function mergeStyles(source) {
var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
// initialize with source styles
var styles = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({}, source);
// massage in target styles
Object.keys(target).forEach(function (keyAsString) {
var key = keyAsString;
if (source[key]) {
styles[key] = function (rsCss, props) {
return target[key](source[key](rsCss, props), props);
};
} else {
styles[key] = target[key];
}
});
return styles;
}
var colors = {
primary: '#2684FF',
primary75: '#4C9AFF',
primary50: '#B2D4FF',
primary25: '#DEEBFF',
danger: '#DE350B',
dangerLight: '#FFBDAD',
neutral0: 'hsl(0, 0%, 100%)',
neutral5: 'hsl(0, 0%, 95%)',
neutral10: 'hsl(0, 0%, 90%)',
neutral20: 'hsl(0, 0%, 80%)',
neutral30: 'hsl(0, 0%, 70%)',
neutral40: 'hsl(0, 0%, 60%)',
neutral50: 'hsl(0, 0%, 50%)',
neutral60: 'hsl(0, 0%, 40%)',
neutral70: 'hsl(0, 0%, 30%)',
neutral80: 'hsl(0, 0%, 20%)',
neutral90: 'hsl(0, 0%, 10%)'
};
var borderRadius = 4;
// Used to calculate consistent margin/padding on elements
var baseUnit = 4;
// The minimum height of the control
var controlHeight = 38;
// The amount of space between the control and menu */
var menuGutter = baseUnit * 2;
var spacing = {
baseUnit: baseUnit,
controlHeight: controlHeight,
menuGutter: menuGutter
};
var defaultTheme = {
borderRadius: borderRadius,
colors: colors,
spacing: spacing
};
var defaultProps = {
'aria-live': 'polite',
backspaceRemovesValue: true,
blurInputOnSelect: (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.z)(),
captureMenuScroll: !(0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.z)(),
classNames: {},
closeMenuOnSelect: true,
closeMenuOnScroll: false,
components: {},
controlShouldRenderValue: true,
escapeClearsValue: false,
filterOption: createFilter(),
formatGroupLabel: formatGroupLabel,
getOptionLabel: getOptionLabel$1,
getOptionValue: getOptionValue$1,
isDisabled: false,
isLoading: false,
isMulti: false,
isRtl: false,
isSearchable: true,
isOptionDisabled: isOptionDisabled,
loadingMessage: function loadingMessage() {
return 'Loading...';
},
maxMenuHeight: 300,
minMenuHeight: 140,
menuIsOpen: false,
menuPlacement: 'bottom',
menuPosition: 'absolute',
menuShouldBlockScroll: false,
menuShouldScrollIntoView: !(0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.A)(),
noOptionsMessage: function noOptionsMessage() {
return 'No options';
},
openMenuOnFocus: false,
openMenuOnClick: true,
options: [],
pageSize: 5,
placeholder: 'Select...',
screenReaderStatus: function screenReaderStatus(_ref) {
var count = _ref.count;
return "".concat(count, " result").concat(count !== 1 ? 's' : '', " available");
},
styles: {},
tabIndex: 0,
tabSelectsValue: true,
unstyled: false
};
function toCategorizedOption(props, option, selectValue, index) {
var isDisabled = _isOptionDisabled(props, option, selectValue);
var isSelected = _isOptionSelected(props, option, selectValue);
var label = getOptionLabel(props, option);
var value = getOptionValue(props, option);
return {
type: 'option',
data: option,
isDisabled: isDisabled,
isSelected: isSelected,
label: label,
value: value,
index: index
};
}
function buildCategorizedOptions(props, selectValue) {
return props.options.map(function (groupOrOption, groupOrOptionIndex) {
if ('options' in groupOrOption) {
var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {
return toCategorizedOption(props, option, selectValue, optionIndex);
}).filter(function (categorizedOption) {
return isFocusable(props, categorizedOption);
});
return categorizedOptions.length > 0 ? {
type: 'group',
data: groupOrOption,
options: categorizedOptions,
index: groupOrOptionIndex
} : undefined;
}
var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);
return isFocusable(props, categorizedOption) ? categorizedOption : undefined;
}).filter(_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.K);
}
function buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {
return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {
if (categorizedOption.type === 'group') {
optionsAccumulator.push.apply(optionsAccumulator, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__["default"])(categorizedOption.options.map(function (option) {
return option.data;
})));
} else {
optionsAccumulator.push(categorizedOption.data);
}
return optionsAccumulator;
}, []);
}
function buildFocusableOptionsWithIds(categorizedOptions, optionId) {
return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {
if (categorizedOption.type === 'group') {
optionsAccumulator.push.apply(optionsAccumulator, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__["default"])(categorizedOption.options.map(function (option) {
return {
data: option.data,
id: "".concat(optionId, "-").concat(categorizedOption.index, "-").concat(option.index)
};
})));
} else {
optionsAccumulator.push({
data: categorizedOption.data,
id: "".concat(optionId, "-").concat(categorizedOption.index)
});
}
return optionsAccumulator;
}, []);
}
function buildFocusableOptions(props, selectValue) {
return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));
}
function isFocusable(props, categorizedOption) {
var _props$inputValue = props.inputValue,
inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;
var data = categorizedOption.data,
isSelected = categorizedOption.isSelected,
label = categorizedOption.label,
value = categorizedOption.value;
return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {
label: label,
value: value,
data: data
}, inputValue);
}
function getNextFocusedValue(state, nextSelectValue) {
var focusedValue = state.focusedValue,
lastSelectValue = state.selectValue;
var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);
if (lastFocusedIndex > -1) {
var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);
if (nextFocusedIndex > -1) {
// the focused value is still in the selectValue, return it
return focusedValue;
} else if (lastFocusedIndex < nextSelectValue.length) {
// the focusedValue is not present in the next selectValue array by
// reference, so return the new value at the same index
return nextSelectValue[lastFocusedIndex];
}
}
return null;
}
function getNextFocusedOption(state, options) {
var lastFocusedOption = state.focusedOption;
return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];
}
var getFocusedOptionId = function getFocusedOptionId(focusableOptionsWithIds, focusedOption) {
var _focusableOptionsWith;
var focusedOptionId = (_focusableOptionsWith = focusableOptionsWithIds.find(function (option) {
return option.data === focusedOption;
})) === null || _focusableOptionsWith === void 0 ? void 0 : _focusableOptionsWith.id;
return focusedOptionId || null;
};
var getOptionLabel = function getOptionLabel(props, data) {
return props.getOptionLabel(data);
};
var getOptionValue = function getOptionValue(props, data) {
return props.getOptionValue(data);
};
function _isOptionDisabled(props, option, selectValue) {
return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;
}
function _isOptionSelected(props, option, selectValue) {
if (selectValue.indexOf(option) > -1) return true;
if (typeof props.isOptionSelected === 'function') {
return props.isOptionSelected(option, selectValue);
}
var candidate = getOptionValue(props, option);
return selectValue.some(function (i) {
return getOptionValue(props, i) === candidate;
});
}
function _filterOption(props, option, inputValue) {
return props.filterOption ? props.filterOption(option, inputValue) : true;
}
var shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {
var hideSelectedOptions = props.hideSelectedOptions,
isMulti = props.isMulti;
if (hideSelectedOptions === undefined) return isMulti;
return hideSelectedOptions;
};
var instanceId = 1;
var Select = /*#__PURE__*/function (_Component) {
(0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__["default"])(Select, _Component);
var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__["default"])(Select);
// Misc. Instance Properties
// ------------------------------
// TODO
// Refs
// ------------------------------
// Lifecycle
// ------------------------------
function Select(_props) {
var _this;
(0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__["default"])(this, Select);
_this = _super.call(this, _props);
_this.state = {
ariaSelection: null,
focusedOption: null,
focusedOptionId: null,
focusableOptionsWithIds: [],
focusedValue: null,
inputIsHidden: false,
isFocused: false,
selectValue: [],
clearFocusValueOnUpdate: false,
prevWasFocused: false,
inputIsHiddenAfterUpdate: undefined,
prevProps: undefined,
instancePrefix: ''
};
_this.blockOptionHover = false;
_this.isComposing = false;
_this.commonProps = void 0;
_this.initialTouchX = 0;
_this.initialTouchY = 0;
_this.openAfterFocus = false;
_this.scrollToFocusedOptionOnUpdate = false;
_this.userIsDragging = void 0;
_this.isAppleDevice = isAppleDevice();
_this.controlRef = null;
_this.getControlRef = function (ref) {
_this.controlRef = ref;
};
_this.focusedOptionRef = null;
_this.getFocusedOptionRef = function (ref) {
_this.focusedOptionRef = ref;
};
_this.menuListRef = null;
_this.getMenuListRef = function (ref) {
_this.menuListRef = ref;
};
_this.inputRef = null;
_this.getInputRef = function (ref) {
_this.inputRef = ref;
};
_this.focus = _this.focusInput;
_this.blur = _this.blurInput;
_this.onChange = function (newValue, actionMeta) {
var _this$props = _this.props,
onChange = _this$props.onChange,
name = _this$props.name;
actionMeta.name = name;
_this.ariaOnChange(newValue, actionMeta);
onChange(newValue, actionMeta);
};
_this.setValue = function (newValue, action, option) {
var _this$props2 = _this.props,
closeMenuOnSelect = _this$props2.closeMenuOnSelect,
isMulti = _this$props2.isMulti,
inputValue = _this$props2.inputValue;
_this.onInputChange('', {
action: 'set-value',
prevInputValue: inputValue
});
if (closeMenuOnSelect) {
_this.setState({
inputIsHiddenAfterUpdate: !isMulti
});
_this.onMenuClose();
}
// when the select value should change, we should reset focusedValue
_this.setState({
clearFocusValueOnUpdate: true
});
_this.onChange(newValue, {
action: action,
option: option
});
};
_this.selectOption = function (newValue) {
var _this$props3 = _this.props,
blurInputOnSelect = _this$props3.blurInputOnSelect,
isMulti = _this$props3.isMulti,
name = _this$props3.name;
var selectValue = _this.state.selectValue;
var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);
var isDisabled = _this.isOptionDisabled(newValue, selectValue);
if (deselected) {
var candidate = _this.getOptionValue(newValue);
_this.setValue((0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.B)(selectValue.filter(function (i) {
return _this.getOptionValue(i) !== candidate;
})), 'deselect-option', newValue);
} else if (!isDisabled) {
// Select option if option is not disabled
if (isMulti) {
_this.setValue((0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.B)([].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__["default"])(selectValue), [newValue])), 'select-option', newValue);
} else {
_this.setValue((0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.C)(newValue), 'select-option');
}
} else {
_this.ariaOnChange((0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.C)(newValue), {
action: 'select-option',
option: newValue,
name: name
});
return;
}
if (blurInputOnSelect) {
_this.blurInput();
}
};
_this.removeValue = function (removedValue) {
var isMulti = _this.props.isMulti;
var selectValue = _this.state.selectValue;
var candidate = _this.getOptionValue(removedValue);
var newValueArray = selectValue.filter(function (i) {
return _this.getOptionValue(i) !== candidate;
});
var newValue = (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.D)(isMulti, newValueArray, newValueArray[0] || null);
_this.onChange(newValue, {
action: 'remove-value',
removedValue: removedValue
});
_this.focusInput();
};
_this.clearValue = function () {
var selectValue = _this.state.selectValue;
_this.onChange((0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.D)(_this.props.isMulti, [], null), {
action: 'clear',
removedValues: selectValue
});
};
_this.popValue = function () {
var isMulti = _this.props.isMulti;
var selectValue = _this.state.selectValue;
var lastSelectedValue = selectValue[selectValue.length - 1];
var newValueArray = selectValue.slice(0, selectValue.length - 1);
var newValue = (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.D)(isMulti, newValueArray, newValueArray[0] || null);
_this.onChange(newValue, {
action: 'pop-value',
removedValue: lastSelectedValue
});
};
_this.getFocusedOptionId = function (focusedOption) {
return getFocusedOptionId(_this.state.focusableOptionsWithIds, focusedOption);
};
_this.getFocusableOptionsWithIds = function () {
return buildFocusableOptionsWithIds(buildCategorizedOptions(_this.props, _this.state.selectValue), _this.getElementId('option'));
};
_this.getValue = function () {
return _this.state.selectValue;
};
_this.cx = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.E.apply(void 0, [_this.props.classNamePrefix].concat(args));
};
_this.getOptionLabel = function (data) {
return getOptionLabel(_this.props, data);
};
_this.getOptionValue = function (data) {
return getOptionValue(_this.props, data);
};
_this.getStyles = function (key, props) {
var unstyled = _this.props.unstyled;
var base = defaultStyles[key](props, unstyled);
base.boxSizing = 'border-box';
var custom = _this.props.styles[key];
return custom ? custom(base, props) : base;
};
_this.getClassNames = function (key, props) {
var _this$props$className, _this$props$className2;
return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);
};
_this.getElementId = function (element) {
return "".concat(_this.state.instancePrefix, "-").concat(element);
};
_this.getComponents = function () {
return (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.F)(_this.props);
};
_this.buildCategorizedOptions = function () {
return buildCategorizedOptions(_this.props, _this.state.selectValue);
};
_this.getCategorizedOptions = function () {
return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];
};
_this.buildFocusableOptions = function () {
return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());
};
_this.getFocusableOptions = function () {
return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];
};
_this.ariaOnChange = function (value, actionMeta) {
_this.setState({
ariaSelection: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({
value: value
}, actionMeta)
});
};
_this.onMenuMouseDown = function (event) {
if (event.button !== 0) {
return;
}
event.stopPropagation();
event.preventDefault();
_this.focusInput();
};
_this.onMenuMouseMove = function (event) {
_this.blockOptionHover = false;
};
_this.onControlMouseDown = function (event) {
// Event captured by dropdown indicator
if (event.defaultPrevented) {
return;
}
var openMenuOnClick = _this.props.openMenuOnClick;
if (!_this.state.isFocused) {
if (openMenuOnClick) {
_this.openAfterFocus = true;
}
_this.focusInput();
} else if (!_this.props.menuIsOpen) {
if (openMenuOnClick) {
_this.openMenu('first');
}
} else {
if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {
_this.onMenuClose();
}
}
if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {
event.preventDefault();
}
};
_this.onDropdownIndicatorMouseDown = function (event) {
// ignore mouse events that weren't triggered by the primary button
if (event && event.type === 'mousedown' && event.button !== 0) {
return;
}
if (_this.props.isDisabled) return;
var _this$props4 = _this.props,
isMulti = _this$props4.isMulti,
menuIsOpen = _this$props4.menuIsOpen;
_this.focusInput();
if (menuIsOpen) {
_this.setState({
inputIsHiddenAfterUpdate: !isMulti
});
_this.onMenuClose();
} else {
_this.openMenu('first');
}
event.preventDefault();
};
_this.onClearIndicatorMouseDown = function (event) {
// ignore mouse events that weren't triggered by the primary button
if (event && event.type === 'mousedown' && event.button !== 0) {
return;
}
_this.clearValue();
event.preventDefault();
_this.openAfterFocus = false;
if (event.type === 'touchend') {
_this.focusInput();
} else {
setTimeout(function () {
return _this.focusInput();
});
}
};
_this.onScroll = function (event) {
if (typeof _this.props.closeMenuOnScroll === 'boolean') {
if (event.target instanceof HTMLElement && (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.G)(event.target)) {
_this.props.onMenuClose();
}
} else if (typeof _this.props.closeMenuOnScroll === 'function') {
if (_this.props.closeMenuOnScroll(event)) {
_this.props.onMenuClose();
}
}
};
_this.onCompositionStart = function () {
_this.isComposing = true;
};
_this.onCompositionEnd = function () {
_this.isComposing = false;
};
_this.onTouchStart = function (_ref2) {
var touches = _ref2.touches;
var touch = touches && touches.item(0);
if (!touch) {
return;
}
_this.initialTouchX = touch.clientX;
_this.initialTouchY = touch.clientY;
_this.userIsDragging = false;
};
_this.onTouchMove = function (_ref3) {
var touches = _ref3.touches;
var touch = touches && touches.item(0);
if (!touch) {
return;
}
var deltaX = Math.abs(touch.clientX - _this.initialTouchX);
var deltaY = Math.abs(touch.clientY - _this.initialTouchY);
var moveThreshold = 5;
_this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;
};
_this.onTouchEnd = function (event) {
if (_this.userIsDragging) return;
// close the menu if the user taps outside
// we're checking on event.target here instead of event.currentTarget, because we want to assert information
// on events on child elements, not the document (which we've attached this handler to).
if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {
_this.blurInput();
}
// reset move vars
_this.initialTouchX = 0;
_this.initialTouchY = 0;
};
_this.onControlTouchEnd = function (event) {
if (_this.userIsDragging) return;
_this.onControlMouseDown(event);
};
_this.onClearIndicatorTouchEnd = function (event) {
if (_this.userIsDragging) return;
_this.onClearIndicatorMouseDown(event);
};
_this.onDropdownIndicatorTouchEnd = function (event) {
if (_this.userIsDragging) return;
_this.onDropdownIndicatorMouseDown(event);
};
_this.handleInputChange = function (event) {
var prevInputValue = _this.props.inputValue;
var inputValue = event.currentTarget.value;
_this.setState({
inputIsHiddenAfterUpdate: false
});
_this.onInputChange(inputValue, {
action: 'input-change',
prevInputValue: prevInputValue
});
if (!_this.props.menuIsOpen) {
_this.onMenuOpen();
}
};
_this.onInputFocus = function (event) {
if (_this.props.onFocus) {
_this.props.onFocus(event);
}
_this.setState({
inputIsHiddenAfterUpdate: false,
isFocused: true
});
if (_this.openAfterFocus || _this.props.openMenuOnFocus) {
_this.openMenu('first');
}
_this.openAfterFocus = false;
};
_this.onInputBlur = function (event) {
var prevInputValue = _this.props.inputValue;
if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {
_this.inputRef.focus();
return;
}
if (_this.props.onBlur) {
_this.props.onBlur(event);
}
_this.onInputChange('', {
action: 'input-blur',
prevInputValue: prevInputValue
});
_this.onMenuClose();
_this.setState({
focusedValue: null,
isFocused: false
});
};
_this.onOptionHover = function (focusedOption) {
if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {
return;
}
var options = _this.getFocusableOptions();
var focusedOptionIndex = options.indexOf(focusedOption);
_this.setState({
focusedOption: focusedOption,
focusedOptionId: focusedOptionIndex > -1 ? _this.getFocusedOptionId(focusedOption) : null
});
};
_this.shouldHideSelectedOptions = function () {
return shouldHideSelectedOptions(_this.props);
};
_this.onValueInputFocus = function (e) {
e.preventDefault();
e.stopPropagation();
_this.focus();
};
_this.onKeyDown = function (event) {
var _this$props5 = _this.props,
isMulti = _this$props5.isMulti,
backspaceRemovesValue = _this$props5.backspaceRemovesValue,
escapeClearsValue = _this$props5.escapeClearsValue,
inputValue = _this$props5.inputValue,
isClearable = _this$props5.isClearable,
isDisabled = _this$props5.isDisabled,
menuIsOpen = _this$props5.menuIsOpen,
onKeyDown = _this$props5.onKeyDown,
tabSelectsValue = _this$props5.tabSelectsValue,
openMenuOnFocus = _this$props5.openMenuOnFocus;
var _this$state = _this.state,
focusedOption = _this$state.focusedOption,
focusedValue = _this$state.focusedValue,
selectValue = _this$state.selectValue;
if (isDisabled) return;
if (typeof onKeyDown === 'function') {
onKeyDown(event);
if (event.defaultPrevented) {
return;
}
}
// Block option hover events when the user has just pressed a key
_this.blockOptionHover = true;
switch (event.key) {
case 'ArrowLeft':
if (!isMulti || inputValue) return;
_this.focusValue('previous');
break;
case 'ArrowRight':
if (!isMulti || inputValue) return;
_this.focusValue('next');
break;
case 'Delete':
case 'Backspace':
if (inputValue) return;
if (focusedValue) {
_this.removeValue(focusedValue);
} else {
if (!backspaceRemovesValue) return;
if (isMulti) {
_this.popValue();
} else if (isClearable) {
_this.clearValue();
}
}
break;
case 'Tab':
if (_this.isComposing) return;
if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||
// don't capture the event if the menu opens on focus and the focused
// option is already selected; it breaks the flow of navigation
openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {
return;
}
_this.selectOption(focusedOption);
break;
case 'Enter':
if (event.keyCode === 229) {
// ignore the keydown event from an Input Method Editor(IME)
// ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode
break;
}
if (menuIsOpen) {
if (!focusedOption) return;
if (_this.isComposing) return;
_this.selectOption(focusedOption);
break;
}
return;
case 'Escape':
if (menuIsOpen) {
_this.setState({
inputIsHiddenAfterUpdate: false
});
_this.onInputChange('', {
action: 'menu-close',
prevInputValue: inputValue
});
_this.onMenuClose();
} else if (isClearable && escapeClearsValue) {
_this.clearValue();
}
break;
case ' ':
// space
if (inputValue) {
return;
}
if (!menuIsOpen) {
_this.openMenu('first');
break;
}
if (!focusedOption) return;
_this.selectOption(focusedOption);
break;
case 'ArrowUp':
if (menuIsOpen) {
_this.focusOption('up');
} else {
_this.openMenu('last');
}
break;
case 'ArrowDown':
if (menuIsOpen) {
_this.focusOption('down');
} else {
_this.openMenu('first');
}
break;
case 'PageUp':
if (!menuIsOpen) return;
_this.focusOption('pageup');
break;
case 'PageDown':
if (!menuIsOpen) return;
_this.focusOption('pagedown');
break;
case 'Home':
if (!menuIsOpen) return;
_this.focusOption('first');
break;
case 'End':
if (!menuIsOpen) return;
_this.focusOption('last');
break;
default:
return;
}
event.preventDefault();
};
_this.state.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);
_this.state.selectValue = (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.H)(_props.value);
// Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)
if (_props.menuIsOpen && _this.state.selectValue.length) {
var focusableOptionsWithIds = _this.getFocusableOptionsWithIds();
var focusableOptions = _this.buildFocusableOptions();
var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);
_this.state.focusableOptionsWithIds = focusableOptionsWithIds;
_this.state.focusedOption = focusableOptions[optionIndex];
_this.state.focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusableOptions[optionIndex]);
}
return _this;
}
(0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__["default"])(Select, [{
key: "componentDidMount",
value: function componentDidMount() {
this.startListeningComposition();
this.startListeningToTouch();
if (this.props.closeMenuOnScroll && document && document.addEventListener) {
// Listen to all scroll events, and filter them out inside of 'onScroll'
document.addEventListener('scroll', this.onScroll, true);
}
if (this.props.autoFocus) {
this.focusInput();
}
// Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)
if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {
(0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.I)(this.menuListRef, this.focusedOptionRef);
}
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate(prevProps) {
var _this$props6 = this.props,
isDisabled = _this$props6.isDisabled,
menuIsOpen = _this$props6.menuIsOpen;
var isFocused = this.state.isFocused;
if (
// ensure focus is restored correctly when the control becomes enabled
isFocused && !isDisabled && prevProps.isDisabled ||
// ensure focus is on the Input when the menu opens
isFocused && menuIsOpen && !prevProps.menuIsOpen) {
this.focusInput();
}
if (isFocused && isDisabled && !prevProps.isDisabled) {
// ensure select state gets blurred in case Select is programmatically disabled while focused
// eslint-disable-next-line react/no-did-update-set-state
this.setState({
isFocused: false
}, this.onMenuClose);
} else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {
// ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)
// eslint-disable-next-line react/no-did-update-set-state
this.setState({
isFocused: true
});
}
// scroll the focused option into view if necessary
if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {
(0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.I)(this.menuListRef, this.focusedOptionRef);
this.scrollToFocusedOptionOnUpdate = false;
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.stopListeningComposition();
this.stopListeningToTouch();
document.removeEventListener('scroll', this.onScroll, true);
}
// ==============================
// Consumer Handlers
// ==============================
}, {
key: "onMenuOpen",
value: function onMenuOpen() {
this.props.onMenuOpen();
}
}, {
key: "onMenuClose",
value: function onMenuClose() {
this.onInputChange('', {
action: 'menu-close',
prevInputValue: this.props.inputValue
});
this.props.onMenuClose();
}
}, {
key: "onInputChange",
value: function onInputChange(newValue, actionMeta) {
this.props.onInputChange(newValue, actionMeta);
}
// ==============================
// Methods
// ==============================
}, {
key: "focusInput",
value: function focusInput() {
if (!this.inputRef) return;
this.inputRef.focus();
}
}, {
key: "blurInput",
value: function blurInput() {
if (!this.inputRef) return;
this.inputRef.blur();
}
// aliased for consumers
}, {
key: "openMenu",
value: function openMenu(focusOption) {
var _this2 = this;
var _this$state2 = this.state,
selectValue = _this$state2.selectValue,
isFocused = _this$state2.isFocused;
var focusableOptions = this.buildFocusableOptions();
var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;
if (!this.props.isMulti) {
var selectedIndex = focusableOptions.indexOf(selectValue[0]);
if (selectedIndex > -1) {
openAtIndex = selectedIndex;
}
}
// only scroll if the menu isn't already open
this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);
this.setState({
inputIsHiddenAfterUpdate: false,
focusedValue: null,
focusedOption: focusableOptions[openAtIndex],
focusedOptionId: this.getFocusedOptionId(focusableOptions[openAtIndex])
}, function () {
return _this2.onMenuOpen();
});
}
}, {
key: "focusValue",
value: function focusValue(direction) {
var _this$state3 = this.state,
selectValue = _this$state3.selectValue,
focusedValue = _this$state3.focusedValue;
// Only multiselects support value focusing
if (!this.props.isMulti) return;
this.setState({
focusedOption: null
});
var focusedIndex = selectValue.indexOf(focusedValue);
if (!focusedValue) {
focusedIndex = -1;
}
var lastIndex = selectValue.length - 1;
var nextFocus = -1;
if (!selectValue.length) return;
switch (direction) {
case 'previous':
if (focusedIndex === 0) {
// don't cycle from the start to the end
nextFocus = 0;
} else if (focusedIndex === -1) {
// if nothing is focused, focus the last value first
nextFocus = lastIndex;
} else {
nextFocus = focusedIndex - 1;
}
break;
case 'next':
if (focusedIndex > -1 && focusedIndex < lastIndex) {
nextFocus = focusedIndex + 1;
}
break;
}
this.setState({
inputIsHidden: nextFocus !== -1,
focusedValue: selectValue[nextFocus]
});
}
}, {
key: "focusOption",
value: function focusOption() {
var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';
var pageSize = this.props.pageSize;
var focusedOption = this.state.focusedOption;
var options = this.getFocusableOptions();
if (!options.length) return;
var nextFocus = 0; // handles 'first'
var focusedIndex = options.indexOf(focusedOption);
if (!focusedOption) {
focusedIndex = -1;
}
if (direction === 'up') {
nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;
} else if (direction === 'down') {
nextFocus = (focusedIndex + 1) % options.length;
} else if (direction === 'pageup') {
nextFocus = focusedIndex - pageSize;
if (nextFocus < 0) nextFocus = 0;
} else if (direction === 'pagedown') {
nextFocus = focusedIndex + pageSize;
if (nextFocus > options.length - 1) nextFocus = options.length - 1;
} else if (direction === 'last') {
nextFocus = options.length - 1;
}
this.scrollToFocusedOptionOnUpdate = true;
this.setState({
focusedOption: options[nextFocus],
focusedValue: null,
focusedOptionId: this.getFocusedOptionId(options[nextFocus])
});
}
}, {
key: "getTheme",
value:
// ==============================
// Getters
// ==============================
function getTheme() {
// Use the default theme if there are no customisations.
if (!this.props.theme) {
return defaultTheme;
}
// If the theme prop is a function, assume the function
// knows how to merge the passed-in default theme with
// its own modifications.
if (typeof this.props.theme === 'function') {
return this.props.theme(defaultTheme);
}
// Otherwise, if a plain theme object was passed in,
// overlay it with the default theme.
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({}, defaultTheme), this.props.theme);
}
}, {
key: "getCommonProps",
value: function getCommonProps() {
var clearValue = this.clearValue,
cx = this.cx,
getStyles = this.getStyles,
getClassNames = this.getClassNames,
getValue = this.getValue,
selectOption = this.selectOption,
setValue = this.setValue,
props = this.props;
var isMulti = props.isMulti,
isRtl = props.isRtl,
options = props.options;
var hasValue = this.hasValue();
return {
clearValue: clearValue,
cx: cx,
getStyles: getStyles,
getClassNames: getClassNames,
getValue: getValue,
hasValue: hasValue,
isMulti: isMulti,
isRtl: isRtl,
options: options,
selectOption: selectOption,
selectProps: props,
setValue: setValue,
theme: this.getTheme()
};
}
}, {
key: "hasValue",
value: function hasValue() {
var selectValue = this.state.selectValue;
return selectValue.length > 0;
}
}, {
key: "hasOptions",
value: function hasOptions() {
return !!this.getFocusableOptions().length;
}
}, {
key: "isClearable",
value: function isClearable() {
var _this$props7 = this.props,
isClearable = _this$props7.isClearable,
isMulti = _this$props7.isMulti;
// single select, by default, IS NOT clearable
// multi select, by default, IS clearable
if (isClearable === undefined) return isMulti;
return isClearable;
}
}, {
key: "isOptionDisabled",
value: function isOptionDisabled(option, selectValue) {
return _isOptionDisabled(this.props, option, selectValue);
}
}, {
key: "isOptionSelected",
value: function isOptionSelected(option, selectValue) {
return _isOptionSelected(this.props, option, selectValue);
}
}, {
key: "filterOption",
value: function filterOption(option, inputValue) {
return _filterOption(this.props, option, inputValue);
}
}, {
key: "formatOptionLabel",
value: function formatOptionLabel(data, context) {
if (typeof this.props.formatOptionLabel === 'function') {
var _inputValue = this.props.inputValue;
var _selectValue = this.state.selectValue;
return this.props.formatOptionLabel(data, {
context: context,
inputValue: _inputValue,
selectValue: _selectValue
});
} else {
return this.getOptionLabel(data);
}
}
}, {
key: "formatGroupLabel",
value: function formatGroupLabel(data) {
return this.props.formatGroupLabel(data);
}
// ==============================
// Mouse Handlers
// ==============================
}, {
key: "startListeningComposition",
value:
// ==============================
// Composition Handlers
// ==============================
function startListeningComposition() {
if (document && document.addEventListener) {
document.addEventListener('compositionstart', this.onCompositionStart, false);
document.addEventListener('compositionend', this.onCompositionEnd, false);
}
}
}, {
key: "stopListeningComposition",
value: function stopListeningComposition() {
if (document && document.removeEventListener) {
document.removeEventListener('compositionstart', this.onCompositionStart);
document.removeEventListener('compositionend', this.onCompositionEnd);
}
}
}, {
key: "startListeningToTouch",
value:
// ==============================
// Touch Handlers
// ==============================
function startListeningToTouch() {
if (document && document.addEventListener) {
document.addEventListener('touchstart', this.onTouchStart, false);
document.addEventListener('touchmove', this.onTouchMove, false);
document.addEventListener('touchend', this.onTouchEnd, false);
}
}
}, {
key: "stopListeningToTouch",
value: function stopListeningToTouch() {
if (document && document.removeEventListener) {
document.removeEventListener('touchstart', this.onTouchStart);
document.removeEventListener('touchmove', this.onTouchMove);
document.removeEventListener('touchend', this.onTouchEnd);
}
}
}, {
key: "renderInput",
value:
// ==============================
// Renderers
// ==============================
function renderInput() {
var _this$props8 = this.props,
isDisabled = _this$props8.isDisabled,
isSearchable = _this$props8.isSearchable,
inputId = _this$props8.inputId,
inputValue = _this$props8.inputValue,
tabIndex = _this$props8.tabIndex,
form = _this$props8.form,
menuIsOpen = _this$props8.menuIsOpen,
required = _this$props8.required;
var _this$getComponents = this.getComponents(),
Input = _this$getComponents.Input;
var _this$state4 = this.state,
inputIsHidden = _this$state4.inputIsHidden,
ariaSelection = _this$state4.ariaSelection;
var commonProps = this.commonProps;
var id = inputId || this.getElementId('input');
// aria attributes makes the JSX "noisy", separated for clarity
var ariaAttributes = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({
'aria-autocomplete': 'list',
'aria-expanded': menuIsOpen,
'aria-haspopup': true,
'aria-errormessage': this.props['aria-errormessage'],
'aria-invalid': this.props['aria-invalid'],
'aria-label': this.props['aria-label'],
'aria-labelledby': this.props['aria-labelledby'],
'aria-required': required,
role: 'combobox',
'aria-activedescendant': this.isAppleDevice ? undefined : this.state.focusedOptionId || ''
}, menuIsOpen && {
'aria-controls': this.getElementId('listbox')
}), !isSearchable && {
'aria-readonly': true
}), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {
'aria-describedby': this.getElementId('live-region')
} : {
'aria-describedby': this.getElementId('placeholder')
});
if (!isSearchable) {
// use a dummy input to maintain focus/blur functionality
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(DummyInput, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({
id: id,
innerRef: this.getInputRef,
onBlur: this.onInputBlur,
onChange: _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.J,
onFocus: this.onInputFocus,
disabled: isDisabled,
tabIndex: tabIndex,
inputMode: "none",
form: form,
value: ""
}, ariaAttributes));
}
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Input, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
autoCapitalize: "none",
autoComplete: "off",
autoCorrect: "off",
id: id,
innerRef: this.getInputRef,
isDisabled: isDisabled,
isHidden: inputIsHidden,
onBlur: this.onInputBlur,
onChange: this.handleInputChange,
onFocus: this.onInputFocus,
spellCheck: "false",
tabIndex: tabIndex,
form: form,
type: "text",
value: inputValue
}, ariaAttributes));
}
}, {
key: "renderPlaceholderOrValue",
value: function renderPlaceholderOrValue() {
var _this3 = this;
var _this$getComponents2 = this.getComponents(),
MultiValue = _this$getComponents2.MultiValue,
MultiValueContainer = _this$getComponents2.MultiValueContainer,
MultiValueLabel = _this$getComponents2.MultiValueLabel,
MultiValueRemove = _this$getComponents2.MultiValueRemove,
SingleValue = _this$getComponents2.SingleValue,
Placeholder = _this$getComponents2.Placeholder;
var commonProps = this.commonProps;
var _this$props9 = this.props,
controlShouldRenderValue = _this$props9.controlShouldRenderValue,
isDisabled = _this$props9.isDisabled,
isMulti = _this$props9.isMulti,
inputValue = _this$props9.inputValue,
placeholder = _this$props9.placeholder;
var _this$state5 = this.state,
selectValue = _this$state5.selectValue,
focusedValue = _this$state5.focusedValue,
isFocused = _this$state5.isFocused;
if (!this.hasValue() || !controlShouldRenderValue) {
return inputValue ? null : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Placeholder, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
key: "placeholder",
isDisabled: isDisabled,
isFocused: isFocused,
innerProps: {
id: this.getElementId('placeholder')
}
}), placeholder);
}
if (isMulti) {
return selectValue.map(function (opt, index) {
var isOptionFocused = opt === focusedValue;
var key = "".concat(_this3.getOptionLabel(opt), "-").concat(_this3.getOptionValue(opt));
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(MultiValue, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
components: {
Container: MultiValueContainer,
Label: MultiValueLabel,
Remove: MultiValueRemove
},
isFocused: isOptionFocused,
isDisabled: isDisabled,
key: key,
index: index,
removeProps: {
onClick: function onClick() {
return _this3.removeValue(opt);
},
onTouchEnd: function onTouchEnd() {
return _this3.removeValue(opt);
},
onMouseDown: function onMouseDown(e) {
e.preventDefault();
}
},
data: opt
}), _this3.formatOptionLabel(opt, 'value'));
});
}
if (inputValue) {
return null;
}
var singleValue = selectValue[0];
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(SingleValue, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
data: singleValue,
isDisabled: isDisabled
}), this.formatOptionLabel(singleValue, 'value'));
}
}, {
key: "renderClearIndicator",
value: function renderClearIndicator() {
var _this$getComponents3 = this.getComponents(),
ClearIndicator = _this$getComponents3.ClearIndicator;
var commonProps = this.commonProps;
var _this$props10 = this.props,
isDisabled = _this$props10.isDisabled,
isLoading = _this$props10.isLoading;
var isFocused = this.state.isFocused;
if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {
return null;
}
var innerProps = {
onMouseDown: this.onClearIndicatorMouseDown,
onTouchEnd: this.onClearIndicatorTouchEnd,
'aria-hidden': 'true'
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(ClearIndicator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
innerProps: innerProps,
isFocused: isFocused
}));
}
}, {
key: "renderLoadingIndicator",
value: function renderLoadingIndicator() {
var _this$getComponents4 = this.getComponents(),
LoadingIndicator = _this$getComponents4.LoadingIndicator;
var commonProps = this.commonProps;
var _this$props11 = this.props,
isDisabled = _this$props11.isDisabled,
isLoading = _this$props11.isLoading;
var isFocused = this.state.isFocused;
if (!LoadingIndicator || !isLoading) return null;
var innerProps = {
'aria-hidden': 'true'
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(LoadingIndicator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
innerProps: innerProps,
isDisabled: isDisabled,
isFocused: isFocused
}));
}
}, {
key: "renderIndicatorSeparator",
value: function renderIndicatorSeparator() {
var _this$getComponents5 = this.getComponents(),
DropdownIndicator = _this$getComponents5.DropdownIndicator,
IndicatorSeparator = _this$getComponents5.IndicatorSeparator;
// separator doesn't make sense without the dropdown indicator
if (!DropdownIndicator || !IndicatorSeparator) return null;
var commonProps = this.commonProps;
var isDisabled = this.props.isDisabled;
var isFocused = this.state.isFocused;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(IndicatorSeparator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
isDisabled: isDisabled,
isFocused: isFocused
}));
}
}, {
key: "renderDropdownIndicator",
value: function renderDropdownIndicator() {
var _this$getComponents6 = this.getComponents(),
DropdownIndicator = _this$getComponents6.DropdownIndicator;
if (!DropdownIndicator) return null;
var commonProps = this.commonProps;
var isDisabled = this.props.isDisabled;
var isFocused = this.state.isFocused;
var innerProps = {
onMouseDown: this.onDropdownIndicatorMouseDown,
onTouchEnd: this.onDropdownIndicatorTouchEnd,
'aria-hidden': 'true'
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(DropdownIndicator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
innerProps: innerProps,
isDisabled: isDisabled,
isFocused: isFocused
}));
}
}, {
key: "renderMenu",
value: function renderMenu() {
var _this4 = this;
var _this$getComponents7 = this.getComponents(),
Group = _this$getComponents7.Group,
GroupHeading = _this$getComponents7.GroupHeading,
Menu = _this$getComponents7.Menu,
MenuList = _this$getComponents7.MenuList,
MenuPortal = _this$getComponents7.MenuPortal,
LoadingMessage = _this$getComponents7.LoadingMessage,
NoOptionsMessage = _this$getComponents7.NoOptionsMessage,
Option = _this$getComponents7.Option;
var commonProps = this.commonProps;
var focusedOption = this.state.focusedOption;
var _this$props12 = this.props,
captureMenuScroll = _this$props12.captureMenuScroll,
inputValue = _this$props12.inputValue,
isLoading = _this$props12.isLoading,
loadingMessage = _this$props12.loadingMessage,
minMenuHeight = _this$props12.minMenuHeight,
maxMenuHeight = _this$props12.maxMenuHeight,
menuIsOpen = _this$props12.menuIsOpen,
menuPlacement = _this$props12.menuPlacement,
menuPosition = _this$props12.menuPosition,
menuPortalTarget = _this$props12.menuPortalTarget,
menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,
menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,
noOptionsMessage = _this$props12.noOptionsMessage,
onMenuScrollToTop = _this$props12.onMenuScrollToTop,
onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;
if (!menuIsOpen) return null;
// TODO: Internal Option Type here
var render = function render(props, id) {
var type = props.type,
data = props.data,
isDisabled = props.isDisabled,
isSelected = props.isSelected,
label = props.label,
value = props.value;
var isFocused = focusedOption === data;
var onHover = isDisabled ? undefined : function () {
return _this4.onOptionHover(data);
};
var onSelect = isDisabled ? undefined : function () {
return _this4.selectOption(data);
};
var optionId = "".concat(_this4.getElementId('option'), "-").concat(id);
var innerProps = {
id: optionId,
onClick: onSelect,
onMouseMove: onHover,
onMouseOver: onHover,
tabIndex: -1,
role: 'option',
'aria-selected': _this4.isAppleDevice ? undefined : isSelected // is not supported on Apple devices
};
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Option, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
innerProps: innerProps,
data: data,
isDisabled: isDisabled,
isSelected: isSelected,
key: optionId,
label: label,
type: type,
value: value,
isFocused: isFocused,
innerRef: isFocused ? _this4.getFocusedOptionRef : undefined
}), _this4.formatOptionLabel(props.data, 'menu'));
};
var menuUI;
if (this.hasOptions()) {
menuUI = this.getCategorizedOptions().map(function (item) {
if (item.type === 'group') {
var _data = item.data,
options = item.options,
groupIndex = item.index;
var groupId = "".concat(_this4.getElementId('group'), "-").concat(groupIndex);
var headingId = "".concat(groupId, "-heading");
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Group, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
key: groupId,
data: _data,
options: options,
Heading: GroupHeading,
headingProps: {
id: headingId,
data: item.data
},
label: _this4.formatGroupLabel(item.data)
}), item.options.map(function (option) {
return render(option, "".concat(groupIndex, "-").concat(option.index));
}));
} else if (item.type === 'option') {
return render(item, "".concat(item.index));
}
});
} else if (isLoading) {
var message = loadingMessage({
inputValue: inputValue
});
if (message === null) return null;
menuUI = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(LoadingMessage, commonProps, message);
} else {
var _message = noOptionsMessage({
inputValue: inputValue
});
if (_message === null) return null;
menuUI = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(NoOptionsMessage, commonProps, _message);
}
var menuPlacementProps = {
minMenuHeight: minMenuHeight,
maxMenuHeight: maxMenuHeight,
menuPlacement: menuPlacement,
menuPosition: menuPosition,
menuShouldScrollIntoView: menuShouldScrollIntoView
};
var menuElement = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.M, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, menuPlacementProps), function (_ref4) {
var ref = _ref4.ref,
_ref4$placerProps = _ref4.placerProps,
placement = _ref4$placerProps.placement,
maxHeight = _ref4$placerProps.maxHeight;
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Menu, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, menuPlacementProps, {
innerRef: ref,
innerProps: {
onMouseDown: _this4.onMenuMouseDown,
onMouseMove: _this4.onMenuMouseMove
},
isLoading: isLoading,
placement: placement
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(ScrollManager, {
captureEnabled: captureMenuScroll,
onTopArrive: onMenuScrollToTop,
onBottomArrive: onMenuScrollToBottom,
lockEnabled: menuShouldBlockScroll
}, function (scrollTargetRef) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(MenuList, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
innerRef: function innerRef(instance) {
_this4.getMenuListRef(instance);
scrollTargetRef(instance);
},
innerProps: {
role: 'listbox',
'aria-multiselectable': commonProps.isMulti,
id: _this4.getElementId('listbox')
},
isLoading: isLoading,
maxHeight: maxHeight,
focusedOption: focusedOption
}), menuUI);
}));
});
// positioning behaviour is almost identical for portalled and fixed,
// so we use the same component. the actual portalling logic is forked
// within the component based on `menuPosition`
return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(MenuPortal, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
appendTo: menuPortalTarget,
controlElement: this.controlRef,
menuPlacement: menuPlacement,
menuPosition: menuPosition
}), menuElement) : menuElement;
}
}, {
key: "renderFormField",
value: function renderFormField() {
var _this5 = this;
var _this$props13 = this.props,
delimiter = _this$props13.delimiter,
isDisabled = _this$props13.isDisabled,
isMulti = _this$props13.isMulti,
name = _this$props13.name,
required = _this$props13.required;
var selectValue = this.state.selectValue;
if (required && !this.hasValue() && !isDisabled) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(RequiredInput$1, {
name: name,
onFocus: this.onValueInputFocus
});
}
if (!name || isDisabled) return;
if (isMulti) {
if (delimiter) {
var value = selectValue.map(function (opt) {
return _this5.getOptionValue(opt);
}).join(delimiter);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement("input", {
name: name,
type: "hidden",
value: value
});
} else {
var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement("input", {
key: "i-".concat(i),
name: name,
type: "hidden",
value: _this5.getOptionValue(opt)
});
}) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement("input", {
name: name,
type: "hidden",
value: ""
});
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement("div", null, input);
}
} else {
var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement("input", {
name: name,
type: "hidden",
value: _value
});
}
}
}, {
key: "renderLiveRegion",
value: function renderLiveRegion() {
var commonProps = this.commonProps;
var _this$state6 = this.state,
ariaSelection = _this$state6.ariaSelection,
focusedOption = _this$state6.focusedOption,
focusedValue = _this$state6.focusedValue,
isFocused = _this$state6.isFocused,
selectValue = _this$state6.selectValue;
var focusableOptions = this.getFocusableOptions();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(LiveRegion$1, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
id: this.getElementId('live-region'),
ariaSelection: ariaSelection,
focusedOption: focusedOption,
focusedValue: focusedValue,
isFocused: isFocused,
selectValue: selectValue,
focusableOptions: focusableOptions,
isAppleDevice: this.isAppleDevice
}));
}
}, {
key: "render",
value: function render() {
var _this$getComponents8 = this.getComponents(),
Control = _this$getComponents8.Control,
IndicatorsContainer = _this$getComponents8.IndicatorsContainer,
SelectContainer = _this$getComponents8.SelectContainer,
ValueContainer = _this$getComponents8.ValueContainer;
var _this$props14 = this.props,
className = _this$props14.className,
id = _this$props14.id,
isDisabled = _this$props14.isDisabled,
menuIsOpen = _this$props14.menuIsOpen;
var isFocused = this.state.isFocused;
var commonProps = this.commonProps = this.getCommonProps();
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(SelectContainer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
className: className,
innerProps: {
id: id,
onKeyDown: this.onKeyDown
},
isDisabled: isDisabled,
isFocused: isFocused
}), this.renderLiveRegion(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Control, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
innerRef: this.getControlRef,
innerProps: {
onMouseDown: this.onControlMouseDown,
onTouchEnd: this.onControlTouchEnd
},
isDisabled: isDisabled,
isFocused: isFocused,
menuIsOpen: menuIsOpen
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(ValueContainer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
isDisabled: isDisabled
}), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(IndicatorsContainer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__["default"])({}, commonProps, {
isDisabled: isDisabled
}), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());
}
}], [{
key: "getDerivedStateFromProps",
value: function getDerivedStateFromProps(props, state) {
var prevProps = state.prevProps,
clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,
inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,
ariaSelection = state.ariaSelection,
isFocused = state.isFocused,
prevWasFocused = state.prevWasFocused,
instancePrefix = state.instancePrefix;
var options = props.options,
value = props.value,
menuIsOpen = props.menuIsOpen,
inputValue = props.inputValue,
isMulti = props.isMulti;
var selectValue = (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.H)(value);
var newMenuOptionsState = {};
if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {
var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];
var focusableOptionsWithIds = menuIsOpen ? buildFocusableOptionsWithIds(buildCategorizedOptions(props, selectValue), "".concat(instancePrefix, "-option")) : [];
var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;
var focusedOption = getNextFocusedOption(state, focusableOptions);
var focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusedOption);
newMenuOptionsState = {
selectValue: selectValue,
focusedOption: focusedOption,
focusedOptionId: focusedOptionId,
focusableOptionsWithIds: focusableOptionsWithIds,
focusedValue: focusedValue,
clearFocusValueOnUpdate: false
};
}
// some updates should toggle the state of the input visibility
var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {
inputIsHidden: inputIsHiddenAfterUpdate,
inputIsHiddenAfterUpdate: undefined
} : {};
var newAriaSelection = ariaSelection;
var hasKeptFocus = isFocused && prevWasFocused;
if (isFocused && !hasKeptFocus) {
// If `value` or `defaultValue` props are not empty then announce them
// when the Select is initially focused
newAriaSelection = {
value: (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_11__.D)(isMulti, selectValue, selectValue[0] || null),
options: selectValue,
action: 'initial-input-focus'
};
hasKeptFocus = !prevWasFocused;
}
// If the 'initial-input-focus' action has been set already
// then reset the ariaSelection to null
if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {
newAriaSelection = null;
}
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({}, newMenuOptionsState), newInputIsHiddenState), {}, {
prevProps: props,
ariaSelection: newAriaSelection,
prevWasFocused: hasKeptFocus
});
}
}]);
return Select;
}(react__WEBPACK_IMPORTED_MODULE_7__.Component);
Select.defaultProps = defaultProps;
/***/ }),
/***/ "./node_modules/react-select/dist/index-a301f526.esm.js":
/*!**************************************************************!*\
!*** ./node_modules/react-select/dist/index-a301f526.esm.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ A: () => (/* binding */ isMobileDevice),
/* harmony export */ B: () => (/* binding */ multiValueAsValue),
/* harmony export */ C: () => (/* binding */ singleValueAsValue),
/* harmony export */ D: () => (/* binding */ valueTernary),
/* harmony export */ E: () => (/* binding */ classNames),
/* harmony export */ F: () => (/* binding */ defaultComponents),
/* harmony export */ G: () => (/* binding */ isDocumentElement),
/* harmony export */ H: () => (/* binding */ cleanValue),
/* harmony export */ I: () => (/* binding */ scrollIntoView),
/* harmony export */ J: () => (/* binding */ noop),
/* harmony export */ K: () => (/* binding */ notNullish),
/* harmony export */ L: () => (/* binding */ handleInputChange),
/* harmony export */ M: () => (/* binding */ MenuPlacer),
/* harmony export */ a: () => (/* binding */ clearIndicatorCSS),
/* harmony export */ b: () => (/* binding */ containerCSS),
/* harmony export */ c: () => (/* binding */ components),
/* harmony export */ d: () => (/* binding */ css$1),
/* harmony export */ e: () => (/* binding */ dropdownIndicatorCSS),
/* harmony export */ f: () => (/* binding */ groupHeadingCSS),
/* harmony export */ g: () => (/* binding */ groupCSS),
/* harmony export */ h: () => (/* binding */ indicatorSeparatorCSS),
/* harmony export */ i: () => (/* binding */ indicatorsContainerCSS),
/* harmony export */ j: () => (/* binding */ inputCSS),
/* harmony export */ k: () => (/* binding */ loadingMessageCSS),
/* harmony export */ l: () => (/* binding */ loadingIndicatorCSS),
/* harmony export */ m: () => (/* binding */ menuCSS),
/* harmony export */ n: () => (/* binding */ menuListCSS),
/* harmony export */ o: () => (/* binding */ menuPortalCSS),
/* harmony export */ p: () => (/* binding */ multiValueCSS),
/* harmony export */ q: () => (/* binding */ multiValueLabelCSS),
/* harmony export */ r: () => (/* binding */ removeProps),
/* harmony export */ s: () => (/* binding */ supportsPassiveEvents),
/* harmony export */ t: () => (/* binding */ multiValueRemoveCSS),
/* harmony export */ u: () => (/* binding */ noOptionsMessageCSS),
/* harmony export */ v: () => (/* binding */ optionCSS),
/* harmony export */ w: () => (/* binding */ placeholderCSS),
/* harmony export */ x: () => (/* binding */ css),
/* harmony export */ y: () => (/* binding */ valueContainerCSS),
/* harmony export */ z: () => (/* binding */ isTouchCapable)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js");
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @emotion/react */ "./node_modules/@emotion/react/dist/emotion-react.browser.esm.js");
/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");
/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");
/* harmony import */ var _babel_runtime_helpers_esm_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/taggedTemplateLiteral */ "./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js");
/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-dom */ "react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @floating-ui/dom */ "./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs");
/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! use-isomorphic-layout-effect */ "./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js");
var _excluded$4 = ["className", "clearValue", "cx", "getStyles", "getClassNames", "getValue", "hasValue", "isMulti", "isRtl", "options", "selectOption", "selectProps", "setValue", "theme"];
// ==============================
// NO OP
// ==============================
var noop = function noop() {};
// ==============================
// Class Name Prefixer
// ==============================
/**
String representation of component state for styling with class names.
Expects an array of strings OR a string/object pair:
- className(['comp', 'comp-arg', 'comp-arg-2'])
@returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'
- className('comp', { some: true, state: false })
@returns 'react-select__comp react-select__comp--some'
*/
function applyPrefixToName(prefix, name) {
if (!name) {
return prefix;
} else if (name[0] === '-') {
return prefix + name;
} else {
return prefix + '__' + name;
}
}
function classNames(prefix, state) {
for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
classNameList[_key - 2] = arguments[_key];
}
var arr = [].concat(classNameList);
if (state && prefix) {
for (var key in state) {
if (state.hasOwnProperty(key) && state[key]) {
arr.push("".concat(applyPrefixToName(prefix, key)));
}
}
}
return arr.filter(function (i) {
return i;
}).map(function (i) {
return String(i).trim();
}).join(' ');
}
// ==============================
// Clean Value
// ==============================
var cleanValue = function cleanValue(value) {
if (isArray(value)) return value.filter(Boolean);
if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_4__["default"])(value) === 'object' && value !== null) return [value];
return [];
};
// ==============================
// Clean Common Props
// ==============================
var cleanCommonProps = function cleanCommonProps(props) {
//className
props.className;
props.clearValue;
props.cx;
props.getStyles;
props.getClassNames;
props.getValue;
props.hasValue;
props.isMulti;
props.isRtl;
props.options;
props.selectOption;
props.selectProps;
props.setValue;
props.theme;
var innerProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(props, _excluded$4);
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, innerProps);
};
// ==============================
// Get Style Props
// ==============================
var getStyleProps = function getStyleProps(props, name, classNamesState) {
var cx = props.cx,
getStyles = props.getStyles,
getClassNames = props.getClassNames,
className = props.className;
return {
css: getStyles(name, props),
className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)
};
};
// ==============================
// Handle Input Change
// ==============================
function handleInputChange(inputValue, actionMeta, onInputChange) {
if (onInputChange) {
var _newValue = onInputChange(inputValue, actionMeta);
if (typeof _newValue === 'string') return _newValue;
}
return inputValue;
}
// ==============================
// Scroll Helpers
// ==============================
function isDocumentElement(el) {
return [document.documentElement, document.body, window].indexOf(el) > -1;
}
// Normalized Scroll Top
// ------------------------------
function normalizedHeight(el) {
if (isDocumentElement(el)) {
return window.innerHeight;
}
return el.clientHeight;
}
// Normalized scrollTo & scrollTop
// ------------------------------
function getScrollTop(el) {
if (isDocumentElement(el)) {
return window.pageYOffset;
}
return el.scrollTop;
}
function scrollTo(el, top) {
// with a scroll distance, we perform scroll on the element
if (isDocumentElement(el)) {
window.scrollTo(0, top);
return;
}
el.scrollTop = top;
}
// Get Scroll Parent
// ------------------------------
function getScrollParent(element) {
var style = getComputedStyle(element);
var excludeStaticParent = style.position === 'absolute';
var overflowRx = /(auto|scroll)/;
if (style.position === 'fixed') return document.documentElement;
for (var parent = element; parent = parent.parentElement;) {
style = getComputedStyle(parent);
if (excludeStaticParent && style.position === 'static') {
continue;
}
if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {
return parent;
}
}
return document.documentElement;
}
// Animated Scroll To
// ------------------------------
/**
@param t: time (elapsed)
@param b: initial value
@param c: amount of change
@param d: duration
*/
function easeOutCubic(t, b, c, d) {
return c * ((t = t / d - 1) * t * t + 1) + b;
}
function animatedScrollTo(element, to) {
var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;
var start = getScrollTop(element);
var change = to - start;
var increment = 10;
var currentTime = 0;
function animateScroll() {
currentTime += increment;
var val = easeOutCubic(currentTime, start, change, duration);
scrollTo(element, val);
if (currentTime < duration) {
window.requestAnimationFrame(animateScroll);
} else {
callback(element);
}
}
animateScroll();
}
// Scroll Into View
// ------------------------------
function scrollIntoView(menuEl, focusedEl) {
var menuRect = menuEl.getBoundingClientRect();
var focusedRect = focusedEl.getBoundingClientRect();
var overScroll = focusedEl.offsetHeight / 3;
if (focusedRect.bottom + overScroll > menuRect.bottom) {
scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));
} else if (focusedRect.top - overScroll < menuRect.top) {
scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));
}
}
// ==============================
// Get bounding client object
// ==============================
// cannot get keys using array notation with DOMRect
function getBoundingClientObj(element) {
var rect = element.getBoundingClientRect();
return {
bottom: rect.bottom,
height: rect.height,
left: rect.left,
right: rect.right,
top: rect.top,
width: rect.width
};
}
// ==============================
// Touch Capability Detector
// ==============================
function isTouchCapable() {
try {
document.createEvent('TouchEvent');
return true;
} catch (e) {
return false;
}
}
// ==============================
// Mobile Device Detector
// ==============================
function isMobileDevice() {
try {
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
} catch (e) {
return false;
}
}
// ==============================
// Passive Event Detector
// ==============================
// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36
var passiveOptionAccessed = false;
var options = {
get passive() {
return passiveOptionAccessed = true;
}
};
// check for SSR
var w = typeof window !== 'undefined' ? window : {};
if (w.addEventListener && w.removeEventListener) {
w.addEventListener('p', noop, options);
w.removeEventListener('p', noop, false);
}
var supportsPassiveEvents = passiveOptionAccessed;
function notNullish(item) {
return item != null;
}
function isArray(arg) {
return Array.isArray(arg);
}
function valueTernary(isMulti, multiValue, singleValue) {
return isMulti ? multiValue : singleValue;
}
function singleValueAsValue(singleValue) {
return singleValue;
}
function multiValueAsValue(multiValue) {
return multiValue;
}
var removeProps = function removeProps(propsObj) {
for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
properties[_key2 - 1] = arguments[_key2];
}
var propsMap = Object.entries(propsObj).filter(function (_ref) {
var _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_ref, 1),
key = _ref2[0];
return !properties.includes(key);
});
return propsMap.reduce(function (newProps, _ref3) {
var _ref4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_ref3, 2),
key = _ref4[0],
val = _ref4[1];
newProps[key] = val;
return newProps;
}, {});
};
var _excluded$3 = ["children", "innerProps"],
_excluded2$1 = ["children", "innerProps"];
function getMenuPlacement(_ref) {
var preferredMaxHeight = _ref.maxHeight,
menuEl = _ref.menuEl,
minHeight = _ref.minHeight,
preferredPlacement = _ref.placement,
shouldScroll = _ref.shouldScroll,
isFixedPosition = _ref.isFixedPosition,
controlHeight = _ref.controlHeight;
var scrollParent = getScrollParent(menuEl);
var defaultState = {
placement: 'bottom',
maxHeight: preferredMaxHeight
};
// something went wrong, return default state
if (!menuEl || !menuEl.offsetParent) return defaultState;
// we can't trust `scrollParent.scrollHeight` --> it may increase when
// the menu is rendered
var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),
scrollHeight = _scrollParent$getBoun.height;
var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),
menuBottom = _menuEl$getBoundingCl.bottom,
menuHeight = _menuEl$getBoundingCl.height,
menuTop = _menuEl$getBoundingCl.top;
var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),
containerTop = _menuEl$offsetParent$.top;
var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);
var scrollTop = getScrollTop(scrollParent);
var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);
var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);
var viewSpaceAbove = containerTop - marginTop;
var viewSpaceBelow = viewHeight - menuTop;
var scrollSpaceAbove = viewSpaceAbove + scrollTop;
var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;
var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;
var scrollUp = scrollTop + menuTop - marginTop;
var scrollDuration = 160;
switch (preferredPlacement) {
case 'auto':
case 'bottom':
// 1: the menu will fit, do nothing
if (viewSpaceBelow >= menuHeight) {
return {
placement: 'bottom',
maxHeight: preferredMaxHeight
};
}
// 2: the menu will fit, if scrolled
if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {
if (shouldScroll) {
animatedScrollTo(scrollParent, scrollDown, scrollDuration);
}
return {
placement: 'bottom',
maxHeight: preferredMaxHeight
};
}
// 3: the menu will fit, if constrained
if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {
if (shouldScroll) {
animatedScrollTo(scrollParent, scrollDown, scrollDuration);
}
// we want to provide as much of the menu as possible to the user,
// so give them whatever is available below rather than the minHeight.
var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;
return {
placement: 'bottom',
maxHeight: constrainedHeight
};
}
// 4. Forked beviour when there isn't enough space below
// AUTO: flip the menu, render above
if (preferredPlacement === 'auto' || isFixedPosition) {
// may need to be constrained after flipping
var _constrainedHeight = preferredMaxHeight;
var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;
if (spaceAbove >= minHeight) {
_constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);
}
return {
placement: 'top',
maxHeight: _constrainedHeight
};
}
// BOTTOM: allow browser to increase scrollable area and immediately set scroll
if (preferredPlacement === 'bottom') {
if (shouldScroll) {
scrollTo(scrollParent, scrollDown);
}
return {
placement: 'bottom',
maxHeight: preferredMaxHeight
};
}
break;
case 'top':
// 1: the menu will fit, do nothing
if (viewSpaceAbove >= menuHeight) {
return {
placement: 'top',
maxHeight: preferredMaxHeight
};
}
// 2: the menu will fit, if scrolled
if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {
if (shouldScroll) {
animatedScrollTo(scrollParent, scrollUp, scrollDuration);
}
return {
placement: 'top',
maxHeight: preferredMaxHeight
};
}
// 3: the menu will fit, if constrained
if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
var _constrainedHeight2 = preferredMaxHeight;
// we want to provide as much of the menu as possible to the user,
// so give them whatever is available below rather than the minHeight.
if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
_constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;
}
if (shouldScroll) {
animatedScrollTo(scrollParent, scrollUp, scrollDuration);
}
return {
placement: 'top',
maxHeight: _constrainedHeight2
};
}
// 4. not enough space, the browser WILL NOT increase scrollable area when
// absolutely positioned element rendered above the viewport (only below).
// Flip the menu, render below
return {
placement: 'bottom',
maxHeight: preferredMaxHeight
};
default:
throw new Error("Invalid placement provided \"".concat(preferredPlacement, "\"."));
}
return defaultState;
}
// Menu Component
// ------------------------------
function alignToControl(placement) {
var placementToCSSProp = {
bottom: 'top',
top: 'bottom'
};
return placement ? placementToCSSProp[placement] : 'bottom';
}
var coercePlacement = function coercePlacement(p) {
return p === 'auto' ? 'bottom' : p;
};
var menuCSS = function menuCSS(_ref2, unstyled) {
var _objectSpread2;
var placement = _ref2.placement,
_ref2$theme = _ref2.theme,
borderRadius = _ref2$theme.borderRadius,
spacing = _ref2$theme.spacing,
colors = _ref2$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((_objectSpread2 = {
label: 'menu'
}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__["default"])(_objectSpread2, alignToControl(placement), '100%'), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__["default"])(_objectSpread2, "position", 'absolute'), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__["default"])(_objectSpread2, "width", '100%'), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__["default"])(_objectSpread2, "zIndex", 1), _objectSpread2), unstyled ? {} : {
backgroundColor: colors.neutral0,
borderRadius: borderRadius,
boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',
marginBottom: spacing.menuGutter,
marginTop: spacing.menuGutter
});
};
var PortalPlacementContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_7__.createContext)(null);
// NOTE: internal only
var MenuPlacer = function MenuPlacer(props) {
var children = props.children,
minMenuHeight = props.minMenuHeight,
maxMenuHeight = props.maxMenuHeight,
menuPlacement = props.menuPlacement,
menuPosition = props.menuPosition,
menuShouldScrollIntoView = props.menuShouldScrollIntoView,
theme = props.theme;
var _ref3 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useContext)(PortalPlacementContext) || {},
setPortalPlacement = _ref3.setPortalPlacement;
var ref = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(null);
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(maxMenuHeight),
_useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState, 2),
maxHeight = _useState2[0],
setMaxHeight = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(null),
_useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState3, 2),
placement = _useState4[0],
setPlacement = _useState4[1];
var controlHeight = theme.spacing.controlHeight;
(0,use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_9__["default"])(function () {
var menuEl = ref.current;
if (!menuEl) return;
// DO NOT scroll if position is fixed
var isFixedPosition = menuPosition === 'fixed';
var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;
var state = getMenuPlacement({
maxHeight: maxMenuHeight,
menuEl: menuEl,
minHeight: minMenuHeight,
placement: menuPlacement,
shouldScroll: shouldScroll,
isFixedPosition: isFixedPosition,
controlHeight: controlHeight
});
setMaxHeight(state.maxHeight);
setPlacement(state.placement);
setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);
}, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);
return children({
ref: ref,
placerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props), {}, {
placement: placement || coercePlacement(menuPlacement),
maxHeight: maxHeight
})
});
};
var Menu = function Menu(props) {
var children = props.children,
innerRef = props.innerRef,
innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'menu', {
menu: true
}), {
ref: innerRef
}, innerProps), children);
};
var Menu$1 = Menu;
// ==============================
// Menu List
// ==============================
var menuListCSS = function menuListCSS(_ref4, unstyled) {
var maxHeight = _ref4.maxHeight,
baseUnit = _ref4.theme.spacing.baseUnit;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
maxHeight: maxHeight,
overflowY: 'auto',
position: 'relative',
// required for offset[Height, Top] > keyboard scroll
WebkitOverflowScrolling: 'touch'
}, unstyled ? {} : {
paddingBottom: baseUnit,
paddingTop: baseUnit
});
};
var MenuList = function MenuList(props) {
var children = props.children,
innerProps = props.innerProps,
innerRef = props.innerRef,
isMulti = props.isMulti;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'menuList', {
'menu-list': true,
'menu-list--is-multi': isMulti
}), {
ref: innerRef
}, innerProps), children);
};
// ==============================
// Menu Notices
// ==============================
var noticeCSS = function noticeCSS(_ref5, unstyled) {
var _ref5$theme = _ref5.theme,
baseUnit = _ref5$theme.spacing.baseUnit,
colors = _ref5$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
textAlign: 'center'
}, unstyled ? {} : {
color: colors.neutral40,
padding: "".concat(baseUnit * 2, "px ").concat(baseUnit * 3, "px")
});
};
var noOptionsMessageCSS = noticeCSS;
var loadingMessageCSS = noticeCSS;
var NoOptionsMessage = function NoOptionsMessage(_ref6) {
var _ref6$children = _ref6.children,
children = _ref6$children === void 0 ? 'No options' : _ref6$children,
innerProps = _ref6.innerProps,
restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(_ref6, _excluded$3);
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, restProps), {}, {
children: children,
innerProps: innerProps
}), 'noOptionsMessage', {
'menu-notice': true,
'menu-notice--no-options': true
}), innerProps), children);
};
var LoadingMessage = function LoadingMessage(_ref7) {
var _ref7$children = _ref7.children,
children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,
innerProps = _ref7.innerProps,
restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(_ref7, _excluded2$1);
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, restProps), {}, {
children: children,
innerProps: innerProps
}), 'loadingMessage', {
'menu-notice': true,
'menu-notice--loading': true
}), innerProps), children);
};
// ==============================
// Menu Portal
// ==============================
var menuPortalCSS = function menuPortalCSS(_ref8) {
var rect = _ref8.rect,
offset = _ref8.offset,
position = _ref8.position;
return {
left: rect.left,
position: position,
top: offset,
width: rect.width,
zIndex: 1
};
};
var MenuPortal = function MenuPortal(props) {
var appendTo = props.appendTo,
children = props.children,
controlElement = props.controlElement,
innerProps = props.innerProps,
menuPlacement = props.menuPlacement,
menuPosition = props.menuPosition;
var menuPortalRef = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(null);
var cleanupRef = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(null);
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(coercePlacement(menuPlacement)),
_useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState5, 2),
placement = _useState6[0],
setPortalPlacement = _useState6[1];
var portalPlacementContext = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {
return {
setPortalPlacement: setPortalPlacement
};
}, []);
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_7__.useState)(null),
_useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState7, 2),
computedPosition = _useState8[0],
setComputedPosition = _useState8[1];
var updateComputedPosition = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function () {
if (!controlElement) return;
var rect = getBoundingClientObj(controlElement);
var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;
var offset = rect[placement] + scrollDistance;
if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {
setComputedPosition({
offset: offset,
rect: rect
});
}
}, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);
(0,use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_9__["default"])(function () {
updateComputedPosition();
}, [updateComputedPosition]);
var runAutoUpdate = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function () {
if (typeof cleanupRef.current === 'function') {
cleanupRef.current();
cleanupRef.current = null;
}
if (controlElement && menuPortalRef.current) {
cleanupRef.current = (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_11__.autoUpdate)(controlElement, menuPortalRef.current, updateComputedPosition, {
elementResize: 'ResizeObserver' in window
});
}
}, [controlElement, updateComputedPosition]);
(0,use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_9__["default"])(function () {
runAutoUpdate();
}, [runAutoUpdate]);
var setMenuPortalElement = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (menuPortalElement) {
menuPortalRef.current = menuPortalElement;
runAutoUpdate();
}, [runAutoUpdate]);
// bail early if required elements aren't present
if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;
// same wrapper element whether fixed or portalled
var menuWrapper = (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
ref: setMenuPortalElement
}, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, props), {}, {
offset: computedPosition.offset,
position: menuPosition,
rect: computedPosition.rect
}), 'menuPortal', {
'menu-portal': true
}), innerProps), children);
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(PortalPlacementContext.Provider, {
value: portalPlacementContext
}, appendTo ? /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_8__.createPortal)(menuWrapper, appendTo) : menuWrapper);
};
// ==============================
// Root Container
// ==============================
var containerCSS = function containerCSS(_ref) {
var isDisabled = _ref.isDisabled,
isRtl = _ref.isRtl;
return {
label: 'container',
direction: isRtl ? 'rtl' : undefined,
pointerEvents: isDisabled ? 'none' : undefined,
// cancel mouse events when disabled
position: 'relative'
};
};
var SelectContainer = function SelectContainer(props) {
var children = props.children,
innerProps = props.innerProps,
isDisabled = props.isDisabled,
isRtl = props.isRtl;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'container', {
'--is-disabled': isDisabled,
'--is-rtl': isRtl
}), innerProps), children);
};
// ==============================
// Value Container
// ==============================
var valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {
var spacing = _ref2.theme.spacing,
isMulti = _ref2.isMulti,
hasValue = _ref2.hasValue,
controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
alignItems: 'center',
display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',
flex: 1,
flexWrap: 'wrap',
WebkitOverflowScrolling: 'touch',
position: 'relative',
overflow: 'hidden'
}, unstyled ? {} : {
padding: "".concat(spacing.baseUnit / 2, "px ").concat(spacing.baseUnit * 2, "px")
});
};
var ValueContainer = function ValueContainer(props) {
var children = props.children,
innerProps = props.innerProps,
isMulti = props.isMulti,
hasValue = props.hasValue;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'valueContainer', {
'value-container': true,
'value-container--is-multi': isMulti,
'value-container--has-value': hasValue
}), innerProps), children);
};
// ==============================
// Indicator Container
// ==============================
var indicatorsContainerCSS = function indicatorsContainerCSS() {
return {
alignItems: 'center',
alignSelf: 'stretch',
display: 'flex',
flexShrink: 0
};
};
var IndicatorsContainer = function IndicatorsContainer(props) {
var children = props.children,
innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'indicatorsContainer', {
indicators: true
}), innerProps), children);
};
var _templateObject;
var _excluded$2 = ["size"],
_excluded2 = ["innerProps", "isRtl", "size"];
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
// ==============================
// Dropdown & Clear Icons
// ==============================
var _ref2 = false ? 0 : {
name: "tj5bde-Svg",
styles: "display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;",
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */",
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
};
var Svg = function Svg(_ref) {
var size = _ref.size,
props = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(_ref, _excluded$2);
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("svg", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
height: size,
width: size,
viewBox: "0 0 20 20",
"aria-hidden": "true",
focusable: "false",
css: _ref2
}, props));
};
var CrossIcon = function CrossIcon(props) {
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(Svg, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
size: 20
}, props), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("path", {
d: "M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"
}));
};
var DownChevron = function DownChevron(props) {
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(Svg, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
size: 20
}, props), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("path", {
d: "M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
}));
};
// ==============================
// Dropdown & Clear Buttons
// ==============================
var baseCSS = function baseCSS(_ref3, unstyled) {
var isFocused = _ref3.isFocused,
_ref3$theme = _ref3.theme,
baseUnit = _ref3$theme.spacing.baseUnit,
colors = _ref3$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'indicatorContainer',
display: 'flex',
transition: 'color 150ms'
}, unstyled ? {} : {
color: isFocused ? colors.neutral60 : colors.neutral20,
padding: baseUnit * 2,
':hover': {
color: isFocused ? colors.neutral80 : colors.neutral40
}
});
};
var dropdownIndicatorCSS = baseCSS;
var DropdownIndicator = function DropdownIndicator(props) {
var children = props.children,
innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'dropdownIndicator', {
indicator: true,
'dropdown-indicator': true
}), innerProps), children || (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(DownChevron, null));
};
var clearIndicatorCSS = baseCSS;
var ClearIndicator = function ClearIndicator(props) {
var children = props.children,
innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'clearIndicator', {
indicator: true,
'clear-indicator': true
}), innerProps), children || (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(CrossIcon, null));
};
// ==============================
// Separator
// ==============================
var indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {
var isDisabled = _ref4.isDisabled,
_ref4$theme = _ref4.theme,
baseUnit = _ref4$theme.spacing.baseUnit,
colors = _ref4$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'indicatorSeparator',
alignSelf: 'stretch',
width: 1
}, unstyled ? {} : {
backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,
marginBottom: baseUnit * 2,
marginTop: baseUnit * 2
});
};
var IndicatorSeparator = function IndicatorSeparator(props) {
var innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, innerProps, getStyleProps(props, 'indicatorSeparator', {
'indicator-separator': true
})));
};
// ==============================
// Loading
// ==============================
var loadingDotAnimations = (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.keyframes)(_templateObject || (_templateObject = (0,_babel_runtime_helpers_esm_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_5__["default"])(["\n 0%, 80%, 100% { opacity: 0; }\n 40% { opacity: 1; }\n"])));
var loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {
var isFocused = _ref5.isFocused,
size = _ref5.size,
_ref5$theme = _ref5.theme,
colors = _ref5$theme.colors,
baseUnit = _ref5$theme.spacing.baseUnit;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'loadingIndicator',
display: 'flex',
transition: 'color 150ms',
alignSelf: 'center',
fontSize: size,
lineHeight: 1,
marginRight: size,
textAlign: 'center',
verticalAlign: 'middle'
}, unstyled ? {} : {
color: isFocused ? colors.neutral60 : colors.neutral20,
padding: baseUnit * 2
});
};
var LoadingDot = function LoadingDot(_ref6) {
var delay = _ref6.delay,
offset = _ref6.offset;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", {
css: /*#__PURE__*/(0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.css)({
animation: "".concat(loadingDotAnimations, " 1s ease-in-out ").concat(delay, "ms infinite;"),
backgroundColor: 'currentColor',
borderRadius: '1em',
display: 'inline-block',
marginLeft: offset ? '1em' : undefined,
height: '1em',
verticalAlign: 'top',
width: '1em'
}, false ? 0 : ";label:LoadingDot;", false ? 0 : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */")
});
};
var LoadingIndicator = function LoadingIndicator(_ref7) {
var innerProps = _ref7.innerProps,
isRtl = _ref7.isRtl,
_ref7$size = _ref7.size,
size = _ref7$size === void 0 ? 4 : _ref7$size,
restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(_ref7, _excluded2);
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, restProps), {}, {
innerProps: innerProps,
isRtl: isRtl,
size: size
}), 'loadingIndicator', {
indicator: true,
'loading-indicator': true
}), innerProps), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(LoadingDot, {
delay: 0,
offset: isRtl
}), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(LoadingDot, {
delay: 160,
offset: true
}), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(LoadingDot, {
delay: 320,
offset: !isRtl
}));
};
var css$1 = function css(_ref, unstyled) {
var isDisabled = _ref.isDisabled,
isFocused = _ref.isFocused,
_ref$theme = _ref.theme,
colors = _ref$theme.colors,
borderRadius = _ref$theme.borderRadius,
spacing = _ref$theme.spacing;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'control',
alignItems: 'center',
cursor: 'default',
display: 'flex',
flexWrap: 'wrap',
justifyContent: 'space-between',
minHeight: spacing.controlHeight,
outline: '0 !important',
position: 'relative',
transition: 'all 100ms'
}, unstyled ? {} : {
backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,
borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,
borderRadius: borderRadius,
borderStyle: 'solid',
borderWidth: 1,
boxShadow: isFocused ? "0 0 0 1px ".concat(colors.primary) : undefined,
'&:hover': {
borderColor: isFocused ? colors.primary : colors.neutral30
}
});
};
var Control = function Control(props) {
var children = props.children,
isDisabled = props.isDisabled,
isFocused = props.isFocused,
innerRef = props.innerRef,
innerProps = props.innerProps,
menuIsOpen = props.menuIsOpen;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
ref: innerRef
}, getStyleProps(props, 'control', {
control: true,
'control--is-disabled': isDisabled,
'control--is-focused': isFocused,
'control--menu-is-open': menuIsOpen
}), innerProps, {
"aria-disabled": isDisabled || undefined
}), children);
};
var Control$1 = Control;
var _excluded$1 = ["data"];
var groupCSS = function groupCSS(_ref, unstyled) {
var spacing = _ref.theme.spacing;
return unstyled ? {} : {
paddingBottom: spacing.baseUnit * 2,
paddingTop: spacing.baseUnit * 2
};
};
var Group = function Group(props) {
var children = props.children,
cx = props.cx,
getStyles = props.getStyles,
getClassNames = props.getClassNames,
Heading = props.Heading,
headingProps = props.headingProps,
innerProps = props.innerProps,
label = props.label,
theme = props.theme,
selectProps = props.selectProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'group', {
group: true
}), innerProps), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(Heading, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, headingProps, {
selectProps: selectProps,
theme: theme,
getStyles: getStyles,
getClassNames: getClassNames,
cx: cx
}), label), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", null, children));
};
var groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {
var _ref2$theme = _ref2.theme,
colors = _ref2$theme.colors,
spacing = _ref2$theme.spacing;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'group',
cursor: 'default',
display: 'block'
}, unstyled ? {} : {
color: colors.neutral40,
fontSize: '75%',
fontWeight: 500,
marginBottom: '0.25em',
paddingLeft: spacing.baseUnit * 3,
paddingRight: spacing.baseUnit * 3,
textTransform: 'uppercase'
});
};
var GroupHeading = function GroupHeading(props) {
var _cleanCommonProps = cleanCommonProps(props);
_cleanCommonProps.data;
var innerProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(_cleanCommonProps, _excluded$1);
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'groupHeading', {
'group-heading': true
}), innerProps));
};
var Group$1 = Group;
var _excluded = ["innerRef", "isDisabled", "isHidden", "inputClassName"];
var inputCSS = function inputCSS(_ref, unstyled) {
var isDisabled = _ref.isDisabled,
value = _ref.value,
_ref$theme = _ref.theme,
spacing = _ref$theme.spacing,
colors = _ref$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
visibility: isDisabled ? 'hidden' : 'visible',
// force css to recompute when value change due to @emotion bug.
// We can remove it whenever the bug is fixed.
transform: value ? 'translateZ(0)' : ''
}, containerStyle), unstyled ? {} : {
margin: spacing.baseUnit / 2,
paddingBottom: spacing.baseUnit / 2,
paddingTop: spacing.baseUnit / 2,
color: colors.neutral80
});
};
var spacingStyle = {
gridArea: '1 / 2',
font: 'inherit',
minWidth: '2px',
border: 0,
margin: 0,
outline: 0,
padding: 0
};
var containerStyle = {
flex: '1 1 auto',
display: 'inline-grid',
gridArea: '1 / 1 / 2 / 3',
gridTemplateColumns: '0 min-content',
'&:after': (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
content: 'attr(data-value) " "',
visibility: 'hidden',
whiteSpace: 'pre'
}, spacingStyle)
};
var inputStyle = function inputStyle(isHidden) {
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'input',
color: 'inherit',
background: 0,
opacity: isHidden ? 0 : 1,
width: '100%'
}, spacingStyle);
};
var Input = function Input(props) {
var cx = props.cx,
value = props.value;
var _cleanCommonProps = cleanCommonProps(props),
innerRef = _cleanCommonProps.innerRef,
isDisabled = _cleanCommonProps.isDisabled,
isHidden = _cleanCommonProps.isHidden,
inputClassName = _cleanCommonProps.inputClassName,
innerProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(_cleanCommonProps, _excluded);
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'input', {
'input-container': true
}), {
"data-value": value || ''
}), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("input", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
className: cx({
input: true
}, inputClassName),
ref: innerRef,
style: inputStyle(isHidden),
disabled: isDisabled
}, innerProps)));
};
var Input$1 = Input;
var multiValueCSS = function multiValueCSS(_ref, unstyled) {
var _ref$theme = _ref.theme,
spacing = _ref$theme.spacing,
borderRadius = _ref$theme.borderRadius,
colors = _ref$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'multiValue',
display: 'flex',
minWidth: 0
}, unstyled ? {} : {
backgroundColor: colors.neutral10,
borderRadius: borderRadius / 2,
margin: spacing.baseUnit / 2
});
};
var multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {
var _ref2$theme = _ref2.theme,
borderRadius = _ref2$theme.borderRadius,
colors = _ref2$theme.colors,
cropWithEllipsis = _ref2.cropWithEllipsis;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
overflow: 'hidden',
textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,
whiteSpace: 'nowrap'
}, unstyled ? {} : {
borderRadius: borderRadius / 2,
color: colors.neutral80,
fontSize: '85%',
padding: 3,
paddingLeft: 6
});
};
var multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {
var _ref3$theme = _ref3.theme,
spacing = _ref3$theme.spacing,
borderRadius = _ref3$theme.borderRadius,
colors = _ref3$theme.colors,
isFocused = _ref3.isFocused;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
alignItems: 'center',
display: 'flex'
}, unstyled ? {} : {
borderRadius: borderRadius / 2,
backgroundColor: isFocused ? colors.dangerLight : undefined,
paddingLeft: spacing.baseUnit,
paddingRight: spacing.baseUnit,
':hover': {
backgroundColor: colors.dangerLight,
color: colors.danger
}
});
};
var MultiValueGeneric = function MultiValueGeneric(_ref4) {
var children = _ref4.children,
innerProps = _ref4.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", innerProps, children);
};
var MultiValueContainer = MultiValueGeneric;
var MultiValueLabel = MultiValueGeneric;
function MultiValueRemove(_ref5) {
var children = _ref5.children,
innerProps = _ref5.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
role: "button"
}, innerProps), children || (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(CrossIcon, {
size: 14
}));
}
var MultiValue = function MultiValue(props) {
var children = props.children,
components = props.components,
data = props.data,
innerProps = props.innerProps,
isDisabled = props.isDisabled,
removeProps = props.removeProps,
selectProps = props.selectProps;
var Container = components.Container,
Label = components.Label,
Remove = components.Remove;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(Container, {
data: data,
innerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, getStyleProps(props, 'multiValue', {
'multi-value': true,
'multi-value--is-disabled': isDisabled
})), innerProps),
selectProps: selectProps
}, (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(Label, {
data: data,
innerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, getStyleProps(props, 'multiValueLabel', {
'multi-value__label': true
})),
selectProps: selectProps
}, children), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)(Remove, {
data: data,
innerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, getStyleProps(props, 'multiValueRemove', {
'multi-value__remove': true
})), {}, {
'aria-label': "Remove ".concat(children || 'option')
}, removeProps),
selectProps: selectProps
}));
};
var MultiValue$1 = MultiValue;
var optionCSS = function optionCSS(_ref, unstyled) {
var isDisabled = _ref.isDisabled,
isFocused = _ref.isFocused,
isSelected = _ref.isSelected,
_ref$theme = _ref.theme,
spacing = _ref$theme.spacing,
colors = _ref$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'option',
cursor: 'default',
display: 'block',
fontSize: 'inherit',
width: '100%',
userSelect: 'none',
WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'
}, unstyled ? {} : {
backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',
color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',
padding: "".concat(spacing.baseUnit * 2, "px ").concat(spacing.baseUnit * 3, "px"),
// provide some affordance on touch devices
':active': {
backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined
}
});
};
var Option = function Option(props) {
var children = props.children,
isDisabled = props.isDisabled,
isFocused = props.isFocused,
isSelected = props.isSelected,
innerRef = props.innerRef,
innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'option', {
option: true,
'option--is-disabled': isDisabled,
'option--is-focused': isFocused,
'option--is-selected': isSelected
}), {
ref: innerRef,
"aria-disabled": isDisabled
}, innerProps), children);
};
var Option$1 = Option;
var placeholderCSS = function placeholderCSS(_ref, unstyled) {
var _ref$theme = _ref.theme,
spacing = _ref$theme.spacing,
colors = _ref$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'placeholder',
gridArea: '1 / 1 / 2 / 3'
}, unstyled ? {} : {
color: colors.neutral50,
marginLeft: spacing.baseUnit / 2,
marginRight: spacing.baseUnit / 2
});
};
var Placeholder = function Placeholder(props) {
var children = props.children,
innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'placeholder', {
placeholder: true
}), innerProps), children);
};
var Placeholder$1 = Placeholder;
var css = function css(_ref, unstyled) {
var isDisabled = _ref.isDisabled,
_ref$theme = _ref.theme,
spacing = _ref$theme.spacing,
colors = _ref$theme.colors;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({
label: 'singleValue',
gridArea: '1 / 1 / 2 / 3',
maxWidth: '100%',
overflow: 'hidden',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap'
}, unstyled ? {} : {
color: isDisabled ? colors.neutral40 : colors.neutral80,
marginLeft: spacing.baseUnit / 2,
marginRight: spacing.baseUnit / 2
});
};
var SingleValue = function SingleValue(props) {
var children = props.children,
isDisabled = props.isDisabled,
innerProps = props.innerProps;
return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({}, getStyleProps(props, 'singleValue', {
'single-value': true,
'single-value--is-disabled': isDisabled
}), innerProps), children);
};
var SingleValue$1 = SingleValue;
var components = {
ClearIndicator: ClearIndicator,
Control: Control$1,
DropdownIndicator: DropdownIndicator,
DownChevron: DownChevron,
CrossIcon: CrossIcon,
Group: Group$1,
GroupHeading: GroupHeading,
IndicatorsContainer: IndicatorsContainer,
IndicatorSeparator: IndicatorSeparator,
Input: Input$1,
LoadingIndicator: LoadingIndicator,
Menu: Menu$1,
MenuList: MenuList,
MenuPortal: MenuPortal,
LoadingMessage: LoadingMessage,
NoOptionsMessage: NoOptionsMessage,
MultiValue: MultiValue$1,
MultiValueContainer: MultiValueContainer,
MultiValueLabel: MultiValueLabel,
MultiValueRemove: MultiValueRemove,
Option: Option$1,
Placeholder: Placeholder$1,
SelectContainer: SelectContainer,
SingleValue: SingleValue$1,
ValueContainer: ValueContainer
};
var defaultComponents = function defaultComponents(props) {
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, components), props.components);
};
/***/ }),
/***/ "./node_modules/react-select/dist/react-select.esm.js":
/*!************************************************************!*\
!*** ./node_modules/react-select/dist/react-select.esm.js ***!
\************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ NonceProvider: () => (/* binding */ NonceProvider),
/* harmony export */ components: () => (/* reexport safe */ _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_5__.c),
/* harmony export */ createFilter: () => (/* reexport safe */ _Select_49a62830_esm_js__WEBPACK_IMPORTED_MODULE_3__.c),
/* harmony export */ "default": () => (/* binding */ StateManagedSelect$1),
/* harmony export */ defaultTheme: () => (/* reexport safe */ _Select_49a62830_esm_js__WEBPACK_IMPORTED_MODULE_3__.d),
/* harmony export */ mergeStyles: () => (/* reexport safe */ _Select_49a62830_esm_js__WEBPACK_IMPORTED_MODULE_3__.m),
/* harmony export */ useStateManager: () => (/* reexport safe */ _useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_0__.u)
/* harmony export */ });
/* harmony import */ var _useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useStateManager-7e1e8489.esm.js */ "./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js");
/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ "./node_modules/@babel/runtime/helpers/esm/extends.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _Select_49a62830_esm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Select-49a62830.esm.js */ "./node_modules/react-select/dist/Select-49a62830.esm.js");
/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @emotion/react */ "./node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js");
/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/cache */ "./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js");
/* harmony import */ var _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index-a301f526.esm.js */ "./node_modules/react-select/dist/index-a301f526.esm.js");
/* harmony import */ var _babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/objectSpread2 */ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js");
/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");
/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js");
/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js");
/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ "./node_modules/@babel/runtime/helpers/esm/inherits.js");
/* harmony import */ var _babel_runtime_helpers_createSuper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime/helpers/createSuper */ "./node_modules/@babel/runtime/helpers/esm/createSuper.js");
/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js");
/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");
/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ "./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js");
/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react-dom */ "react-dom");
/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! use-isomorphic-layout-effect */ "./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js");
var StateManagedSelect = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(function (props, ref) {
var baseSelectProps = (0,_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_0__.u)(props);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_Select_49a62830_esm_js__WEBPACK_IMPORTED_MODULE_3__.S, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__["default"])({
ref: ref
}, baseSelectProps));
});
var StateManagedSelect$1 = StateManagedSelect;
var NonceProvider = (function (_ref) {
var nonce = _ref.nonce,
children = _ref.children,
cacheKey = _ref.cacheKey;
var emotionCache = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {
return (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_4__["default"])({
key: cacheKey,
nonce: nonce
});
}, [cacheKey, nonce]);
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_emotion_react__WEBPACK_IMPORTED_MODULE_19__.C, {
value: emotionCache
}, children);
});
/***/ }),
/***/ "./node_modules/react-select/dist/useAsync-ba7c6b77.esm.js":
/*!*****************************************************************!*\
!*** ./node_modules/react-select/dist/useAsync-ba7c6b77.esm.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ u: () => (/* binding */ useAsync)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js");
/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index-a301f526.esm.js */ "./node_modules/react-select/dist/index-a301f526.esm.js");
var _excluded = ["defaultOptions", "cacheOptions", "loadOptions", "options", "isLoading", "onInputChange", "filterOption"];
function useAsync(_ref) {
var _ref$defaultOptions = _ref.defaultOptions,
propsDefaultOptions = _ref$defaultOptions === void 0 ? false : _ref$defaultOptions,
_ref$cacheOptions = _ref.cacheOptions,
cacheOptions = _ref$cacheOptions === void 0 ? false : _ref$cacheOptions,
propsLoadOptions = _ref.loadOptions;
_ref.options;
var _ref$isLoading = _ref.isLoading,
propsIsLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
propsOnInputChange = _ref.onInputChange,
_ref$filterOption = _ref.filterOption,
filterOption = _ref$filterOption === void 0 ? null : _ref$filterOption,
restSelectProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__["default"])(_ref, _excluded);
var propsInputValue = restSelectProps.inputValue;
var lastRequest = (0,react__WEBPACK_IMPORTED_MODULE_4__.useRef)(undefined);
var mounted = (0,react__WEBPACK_IMPORTED_MODULE_4__.useRef)(false);
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined),
_useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState, 2),
defaultOptions = _useState2[0],
setDefaultOptions = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(typeof propsInputValue !== 'undefined' ? propsInputValue : ''),
_useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState3, 2),
stateInputValue = _useState4[0],
setStateInputValue = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(propsDefaultOptions === true),
_useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState5, 2),
isLoading = _useState6[0],
setIsLoading = _useState6[1];
var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(undefined),
_useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState7, 2),
loadedInputValue = _useState8[0],
setLoadedInputValue = _useState8[1];
var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),
_useState10 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState9, 2),
loadedOptions = _useState10[0],
setLoadedOptions = _useState10[1];
var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false),
_useState12 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState11, 2),
passEmptyOptions = _useState12[0],
setPassEmptyOptions = _useState12[1];
var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)({}),
_useState14 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState13, 2),
optionsCache = _useState14[0],
setOptionsCache = _useState14[1];
var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(undefined),
_useState16 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState15, 2),
prevDefaultOptions = _useState16[0],
setPrevDefaultOptions = _useState16[1];
var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(undefined),
_useState18 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__["default"])(_useState17, 2),
prevCacheOptions = _useState18[0],
setPrevCacheOptions = _useState18[1];
if (cacheOptions !== prevCacheOptions) {
setOptionsCache({});
setPrevCacheOptions(cacheOptions);
}
if (propsDefaultOptions !== prevDefaultOptions) {
setDefaultOptions(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined);
setPrevDefaultOptions(propsDefaultOptions);
}
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
mounted.current = true;
return function () {
mounted.current = false;
};
}, []);
var loadOptions = (0,react__WEBPACK_IMPORTED_MODULE_4__.useCallback)(function (inputValue, callback) {
if (!propsLoadOptions) return callback();
var loader = propsLoadOptions(inputValue, callback);
if (loader && typeof loader.then === 'function') {
loader.then(callback, function () {
return callback();
});
}
}, [propsLoadOptions]);
(0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {
if (propsDefaultOptions === true) {
loadOptions(stateInputValue, function (options) {
if (!mounted.current) return;
setDefaultOptions(options || []);
setIsLoading(!!lastRequest.current);
});
}
// NOTE: this effect is designed to only run when the component mounts,
// so we don't want to include any hook dependencies
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
var onInputChange = (0,react__WEBPACK_IMPORTED_MODULE_4__.useCallback)(function (newValue, actionMeta) {
var inputValue = (0,_index_a301f526_esm_js__WEBPACK_IMPORTED_MODULE_5__.L)(newValue, actionMeta, propsOnInputChange);
if (!inputValue) {
lastRequest.current = undefined;
setStateInputValue('');
setLoadedInputValue('');
setLoadedOptions([]);
setIsLoading(false);
setPassEmptyOptions(false);
return;
}
if (cacheOptions && optionsCache[inputValue]) {
setStateInputValue(inputValue);
setLoadedInputValue(inputValue);
setLoadedOptions(optionsCache[inputValue]);
setIsLoading(false);
setPassEmptyOptions(false);
} else {
var request = lastRequest.current = {};
setStateInputValue(inputValue);
setIsLoading(true);
setPassEmptyOptions(!loadedInputValue);
loadOptions(inputValue, function (options) {
if (!mounted) return;
if (request !== lastRequest.current) return;
lastRequest.current = undefined;
setIsLoading(false);
setLoadedInputValue(inputValue);
setLoadedOptions(options || []);
setPassEmptyOptions(false);
setOptionsCache(options ? (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({}, optionsCache), {}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__["default"])({}, inputValue, options)) : optionsCache);
});
}
}, [cacheOptions, loadOptions, loadedInputValue, optionsCache, propsOnInputChange]);
var options = passEmptyOptions ? [] : stateInputValue && loadedInputValue ? loadedOptions : defaultOptions || [];
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__["default"])({}, restSelectProps), {}, {
options: options,
isLoading: isLoading || propsIsLoading,
onInputChange: onInputChange,
filterOption: filterOption
});
}
/***/ }),
/***/ "./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js":
/*!************************************************************************!*\
!*** ./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js ***!
\************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ u: () => (/* binding */ useStateManager)
/* harmony export */ });
/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js");
/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js");
/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
var _excluded = ["defaultInputValue", "defaultMenuIsOpen", "defaultValue", "inputValue", "menuIsOpen", "onChange", "onInputChange", "onMenuClose", "onMenuOpen", "value"];
function useStateManager(_ref) {
var _ref$defaultInputValu = _ref.defaultInputValue,
defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,
_ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,
defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,
_ref$defaultValue = _ref.defaultValue,
defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,
propsInputValue = _ref.inputValue,
propsMenuIsOpen = _ref.menuIsOpen,
propsOnChange = _ref.onChange,
propsOnInputChange = _ref.onInputChange,
propsOnMenuClose = _ref.onMenuClose,
propsOnMenuOpen = _ref.onMenuOpen,
propsValue = _ref.value,
restSelectProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__["default"])(_ref, _excluded);
var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(propsInputValue !== undefined ? propsInputValue : defaultInputValue),
_useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__["default"])(_useState, 2),
stateInputValue = _useState2[0],
setStateInputValue = _useState2[1];
var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),
_useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__["default"])(_useState3, 2),
stateMenuIsOpen = _useState4[0],
setStateMenuIsOpen = _useState4[1];
var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(propsValue !== undefined ? propsValue : defaultValue),
_useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__["default"])(_useState5, 2),
stateValue = _useState6[0],
setStateValue = _useState6[1];
var onChange = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function (value, actionMeta) {
if (typeof propsOnChange === 'function') {
propsOnChange(value, actionMeta);
}
setStateValue(value);
}, [propsOnChange]);
var onInputChange = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function (value, actionMeta) {
var newValue;
if (typeof propsOnInputChange === 'function') {
newValue = propsOnInputChange(value, actionMeta);
}
setStateInputValue(newValue !== undefined ? newValue : value);
}, [propsOnInputChange]);
var onMenuOpen = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function () {
if (typeof propsOnMenuOpen === 'function') {
propsOnMenuOpen();
}
setStateMenuIsOpen(true);
}, [propsOnMenuOpen]);
var onMenuClose = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function () {
if (typeof propsOnMenuClose === 'function') {
propsOnMenuClose();
}
setStateMenuIsOpen(false);
}, [propsOnMenuClose]);
var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;
var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;
var value = propsValue !== undefined ? propsValue : stateValue;
return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__["default"])({}, restSelectProps), {}, {
inputValue: inputValue,
menuIsOpen: menuIsOpen,
onChange: onChange,
onInputChange: onInputChange,
onMenuClose: onMenuClose,
onMenuOpen: onMenuOpen,
value: value
});
}
/***/ }),
/***/ "./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js":
/*!****************************************************************************************************!*\
!*** ./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js ***!
\****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
var index = react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect ;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (index);
/***/ }),
/***/ "react":
/*!************************!*\
!*** external "React" ***!
\************************/
/***/ ((module) => {
module.exports = window["React"];
/***/ }),
/***/ "react-dom":
/*!***************************!*\
!*** external "ReactDOM" ***!
\***************************/
/***/ ((module) => {
module.exports = window["ReactDOM"];
/***/ }),
/***/ "@wordpress/data":
/*!******************************!*\
!*** external ["wp","data"] ***!
\******************************/
/***/ ((module) => {
module.exports = window["wp"]["data"];
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
/*!*********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
\*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _arrayLikeToArray)
/* harmony export */ });
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
\*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _arrayWithHoles)
/* harmony export */ });
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
\**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _arrayWithoutHoles)
/* harmony export */ });
/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js");
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arr);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
/*!**************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
\**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _assertThisInitialized)
/* harmony export */ });
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
\*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _classCallCheck)
/* harmony export */ });
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/createClass.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/createClass.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _createClass)
/* harmony export */ });
/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js");
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(descriptor.key), descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
Object.defineProperty(Constructor, "prototype", {
writable: false
});
return Constructor;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/createSuper.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/createSuper.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _createSuper)
/* harmony export */ });
/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js");
/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isNativeReflectConstruct.js */ "./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js");
/* harmony import */ var _possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./possibleConstructorReturn.js */ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js");
function _createSuper(Derived) {
var hasNativeReflectConstruct = (0,_isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__["default"])();
return function _createSuperInternal() {
var Super = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Derived),
result;
if (hasNativeReflectConstruct) {
var NewTarget = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return (0,_possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this, result);
};
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
\*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _defineProperty)
/* harmony export */ });
/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js");
function _defineProperty(obj, key, value) {
key = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__["default"])(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/extends.js":
/*!************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/extends.js ***!
\************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _extends)
/* harmony export */ });
function _extends() {
_extends = Object.assign ? Object.assign.bind() : function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
\*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _getPrototypeOf)
/* harmony export */ });
function _getPrototypeOf(o) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/inherits.js":
/*!*************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/inherits.js ***!
\*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _inherits)
/* harmony export */ });
/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js");
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
Object.defineProperty(subClass, "prototype", {
writable: false
});
if (superClass) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__["default"])(subClass, superClass);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js":
/*!*****************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js ***!
\*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _isNativeReflectConstruct)
/* harmony export */ });
function _isNativeReflectConstruct() {
try {
var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
} catch (t) {}
return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {
return !!t;
})();
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
/*!********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _iterableToArray)
/* harmony export */ });
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
/*!*************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
\*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _iterableToArrayLimit)
/* harmony export */ });
function _iterableToArrayLimit(r, l) {
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
if (null != t) {
var e,
n,
i,
u,
a = [],
f = !0,
o = !1;
try {
if (i = (t = t.call(r)).next, 0 === l) {
if (Object(t) !== t) return;
f = !1;
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
} catch (r) {
o = !0, n = r;
} finally {
try {
if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
} finally {
if (o) throw n;
}
}
return a;
}
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
/*!********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _nonIterableRest)
/* harmony export */ });
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
\**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _nonIterableSpread)
/* harmony export */ });
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/objectSpread2.js":
/*!******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _objectSpread2)
/* harmony export */ });
/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defineProperty.js */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js");
function ownKeys(e, r) {
var t = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var o = Object.getOwnPropertySymbols(e);
r && (o = o.filter(function (r) {
return Object.getOwnPropertyDescriptor(e, r).enumerable;
})), t.push.apply(t, o);
}
return t;
}
function _objectSpread2(e) {
for (var r = 1; r < arguments.length; r++) {
var t = null != arguments[r] ? arguments[r] : {};
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
(0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__["default"])(e, r, t[r]);
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
});
}
return e;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js":
/*!****************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***!
\****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _objectWithoutProperties)
/* harmony export */ });
/* harmony import */ var _objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js");
function _objectWithoutProperties(source, excluded) {
if (source == null) return {};
var target = (0,_objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__["default"])(source, excluded);
var key, i;
if (Object.getOwnPropertySymbols) {
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
for (i = 0; i < sourceSymbolKeys.length; i++) {
key = sourceSymbolKeys[i];
if (excluded.indexOf(key) >= 0) continue;
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
target[key] = source[key];
}
}
return target;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js":
/*!*********************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***!
\*********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _objectWithoutPropertiesLoose)
/* harmony export */ });
function _objectWithoutPropertiesLoose(source, excluded) {
if (source == null) return {};
var target = {};
var sourceKeys = Object.keys(source);
var key, i;
for (i = 0; i < sourceKeys.length; i++) {
key = sourceKeys[i];
if (excluded.indexOf(key) >= 0) continue;
target[key] = source[key];
}
return target;
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
/*!******************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
\******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _possibleConstructorReturn)
/* harmony export */ });
/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");
/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ "./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js");
function _possibleConstructorReturn(self, call) {
if (call && ((0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(call) === "object" || typeof call === "function")) {
return call;
} else if (call !== void 0) {
throw new TypeError("Derived constructors may only return object or undefined");
}
return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__["default"])(self);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
/*!*******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
\*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _setPrototypeOf)
/* harmony export */ });
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
/*!******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _slicedToArray)
/* harmony export */ });
/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ "./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js");
/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ "./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js");
/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js");
/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ "./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js");
function _slicedToArray(arr, i) {
return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arr) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arr, i) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(arr, i) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__["default"])();
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js":
/*!**************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js ***!
\**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _taggedTemplateLiteral)
/* harmony export */ });
function _taggedTemplateLiteral(strings, raw) {
if (!raw) {
raw = strings.slice(0);
}
return Object.freeze(Object.defineProperties(strings, {
raw: {
value: Object.freeze(raw)
}
}));
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
/*!**********************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
\**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _toConsumableArray)
/* harmony export */ });
/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js");
/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js");
/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js");
/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js");
function _toConsumableArray(arr) {
return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__["default"])(arr) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__["default"])(arr) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__["default"])(arr) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__["default"])();
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
/*!****************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ toPrimitive)
/* harmony export */ });
/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");
function toPrimitive(t, r) {
if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(t) || !t) return t;
var e = t[Symbol.toPrimitive];
if (void 0 !== e) {
var i = e.call(t, r || "default");
if ("object" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i)) return i;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return ("string" === r ? String : Number)(t);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
/*!******************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ toPropertyKey)
/* harmony export */ });
/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ "./node_modules/@babel/runtime/helpers/esm/typeof.js");
/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ "./node_modules/@babel/runtime/helpers/esm/toPrimitive.js");
function toPropertyKey(t) {
var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__["default"])(t, "string");
return "symbol" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__["default"])(i) ? i : String(i);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/typeof.js":
/*!***********************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/typeof.js ***!
\***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _typeof)
/* harmony export */ });
function _typeof(o) {
"@babel/helpers - typeof";
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
return typeof o;
} : function (o) {
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
}, _typeof(o);
}
/***/ }),
/***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
/*!*******************************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
\*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (/* binding */ _unsupportedIterableToArray)
/* harmony export */ });
/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js");
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === "string") return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__["default"])(o, minLen);
}
/***/ }),
/***/ "./node_modules/@floating-ui/core/dist/floating-ui.core.mjs":
/*!******************************************************************!*\
!*** ./node_modules/@floating-ui/core/dist/floating-ui.core.mjs ***!
\******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ arrow: () => (/* binding */ arrow),
/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),
/* harmony export */ computePosition: () => (/* binding */ computePosition),
/* harmony export */ detectOverflow: () => (/* binding */ detectOverflow),
/* harmony export */ flip: () => (/* binding */ flip),
/* harmony export */ hide: () => (/* binding */ hide),
/* harmony export */ inline: () => (/* binding */ inline),
/* harmony export */ limitShift: () => (/* binding */ limitShift),
/* harmony export */ offset: () => (/* binding */ offset),
/* harmony export */ rectToClientRect: () => (/* reexport safe */ _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect),
/* harmony export */ shift: () => (/* binding */ shift),
/* harmony export */ size: () => (/* binding */ size)
/* harmony export */ });
/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils */ "./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs");
function computeCoordsFromPlacement(_ref, placement, rtl) {
let {
reference,
floating
} = _ref;
const sideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);
const alignmentAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);
const alignLength = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(alignmentAxis);
const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);
const isVertical = sideAxis === 'y';
const commonX = reference.x + reference.width / 2 - floating.width / 2;
const commonY = reference.y + reference.height / 2 - floating.height / 2;
const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
let coords;
switch (side) {
case 'top':
coords = {
x: commonX,
y: reference.y - floating.height
};
break;
case 'bottom':
coords = {
x: commonX,
y: reference.y + reference.height
};
break;
case 'right':
coords = {
x: reference.x + reference.width,
y: commonY
};
break;
case 'left':
coords = {
x: reference.x - floating.width,
y: commonY
};
break;
default:
coords = {
x: reference.x,
y: reference.y
};
}
switch ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement)) {
case 'start':
coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
break;
case 'end':
coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
break;
}
return coords;
}
/**
* Computes the `x` and `y` coordinates that will place the floating element
* next to a given reference element.
*
* This export does not have any `platform` interface logic. You will need to
* write one for the platform you are using Floating UI with.
*/
const computePosition = async (reference, floating, config) => {
const {
placement = 'bottom',
strategy = 'absolute',
middleware = [],
platform
} = config;
const validMiddleware = middleware.filter(Boolean);
const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
let rects = await platform.getElementRects({
reference,
floating,
strategy
});
let {
x,
y
} = computeCoordsFromPlacement(rects, placement, rtl);
let statefulPlacement = placement;
let middlewareData = {};
let resetCount = 0;
for (let i = 0; i < validMiddleware.length; i++) {
const {
name,
fn
} = validMiddleware[i];
const {
x: nextX,
y: nextY,
data,
reset
} = await fn({
x,
y,
initialPlacement: placement,
placement: statefulPlacement,
strategy,
middlewareData,
rects,
platform,
elements: {
reference,
floating
}
});
x = nextX != null ? nextX : x;
y = nextY != null ? nextY : y;
middlewareData = {
...middlewareData,
[name]: {
...middlewareData[name],
...data
}
};
if (reset && resetCount <= 50) {
resetCount++;
if (typeof reset === 'object') {
if (reset.placement) {
statefulPlacement = reset.placement;
}
if (reset.rects) {
rects = reset.rects === true ? await platform.getElementRects({
reference,
floating,
strategy
}) : reset.rects;
}
({
x,
y
} = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
}
i = -1;
}
}
return {
x,
y,
placement: statefulPlacement,
strategy,
middlewareData
};
};
/**
* Resolves with an object of overflow side offsets that determine how much the
* element is overflowing a given clipping boundary on each side.
* - positive = overflowing the boundary by that number of pixels
* - negative = how many pixels left before it will overflow
* - 0 = lies flush with the boundary
* @see https://floating-ui.com/docs/detectOverflow
*/
async function detectOverflow(state, options) {
var _await$platform$isEle;
if (options === void 0) {
options = {};
}
const {
x,
y,
platform,
rects,
elements,
strategy
} = state;
const {
boundary = 'clippingAncestors',
rootBoundary = 'viewport',
elementContext = 'floating',
altBoundary = false,
padding = 0
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);
const altContext = elementContext === 'floating' ? 'reference' : 'floating';
const element = elements[altBoundary ? altContext : elementContext];
const clippingClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(await platform.getClippingRect({
element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
boundary,
rootBoundary,
strategy
}));
const rect = elementContext === 'floating' ? {
...rects.floating,
x,
y
} : rects.reference;
const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
x: 1,
y: 1
} : {
x: 1,
y: 1
};
const elementClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
elements,
rect,
offsetParent,
strategy
}) : rect);
return {
top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
};
}
/**
* Provides data to position an inner element of the floating element so that it
* appears centered to the reference element.
* @see https://floating-ui.com/docs/arrow
*/
const arrow = options => ({
name: 'arrow',
options,
async fn(state) {
const {
x,
y,
placement,
rects,
platform,
elements,
middlewareData
} = state;
// Since `element` is required, we don't Partial<> the type.
const {
element,
padding = 0
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state) || {};
if (element == null) {
return {};
}
const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);
const coords = {
x,
y
};
const axis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);
const length = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(axis);
const arrowDimensions = await platform.getDimensions(element);
const isYAxis = axis === 'y';
const minProp = isYAxis ? 'top' : 'left';
const maxProp = isYAxis ? 'bottom' : 'right';
const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';
const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
const startDiff = coords[axis] - rects.reference[axis];
const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
// DOM platform can return `window` as the `offsetParent`.
if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {
clientSize = elements.floating[clientProp] || rects.floating[length];
}
const centerToReference = endDiff / 2 - startDiff / 2;
// If the padding is large enough that it causes the arrow to no longer be
// centered, modify the padding so that it is centered.
const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
const minPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[minProp], largestPossiblePadding);
const maxPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[maxProp], largestPossiblePadding);
// Make sure the arrow doesn't overflow the floating element if the center
// point is outside the floating element's bounds.
const min$1 = minPadding;
const max = clientSize - arrowDimensions[length] - maxPadding;
const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
const offset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min$1, center, max);
// If the reference is small enough that the arrow's padding causes it to
// to point to nothing for an aligned placement, adjust the offset of the
// floating element itself. To ensure `shift()` continues to take action,
// a single reset is performed when this is true.
const shouldAddOffset = !middlewareData.arrow && (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;
return {
[axis]: coords[axis] + alignmentOffset,
data: {
[axis]: offset,
centerOffset: center - offset - alignmentOffset,
...(shouldAddOffset && {
alignmentOffset
})
},
reset: shouldAddOffset
};
}
});
function getPlacementList(alignment, autoAlignment, allowedPlacements) {
const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment), ...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) !== alignment)] : allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === placement);
return allowedPlacementsSortedByAlignment.filter(placement => {
if (alignment) {
return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment || (autoAlignment ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAlignmentPlacement)(placement) !== placement : false);
}
return true;
});
}
/**
* Optimizes the visibility of the floating element by choosing the placement
* that has the most space available automatically, without needing to specify a
* preferred placement. Alternative to `flip`.
* @see https://floating-ui.com/docs/autoPlacement
*/
const autoPlacement = function (options) {
if (options === void 0) {
options = {};
}
return {
name: 'autoPlacement',
options,
async fn(state) {
var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;
const {
rects,
middlewareData,
placement,
platform,
elements
} = state;
const {
crossAxis = false,
alignment,
allowedPlacements = _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements,
autoAlignment = true,
...detectOverflowOptions
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
const placements$1 = alignment !== undefined || allowedPlacements === _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
const overflow = await detectOverflow(state, detectOverflowOptions);
const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;
const currentPlacement = placements$1[currentIndex];
if (currentPlacement == null) {
return {};
}
const alignmentSides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));
// Make `computeCoords` start from the right place.
if (placement !== currentPlacement) {
return {
reset: {
placement: placements$1[0]
}
};
}
const currentOverflows = [overflow[(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];
const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {
placement: currentPlacement,
overflows: currentOverflows
}];
const nextPlacement = placements$1[currentIndex + 1];
// There are more placements to check.
if (nextPlacement) {
return {
data: {
index: currentIndex + 1,
overflows: allOverflows
},
reset: {
placement: nextPlacement
}
};
}
const placementsSortedByMostSpace = allOverflows.map(d => {
const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d.placement);
return [d.placement, alignment && crossAxis ?
// Check along the mainAxis and main crossAxis side.
d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :
// Check only the mainAxis.
d.overflows[0], d.overflows];
}).sort((a, b) => a[1] - b[1]);
const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,
// Aligned placements should not check their opposite crossAxis
// side.
(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d[0]) ? 2 : 3).every(v => v <= 0));
const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];
if (resetPlacement !== placement) {
return {
data: {
index: currentIndex + 1,
overflows: allOverflows
},
reset: {
placement: resetPlacement
}
};
}
return {};
}
};
};
/**
* Optimizes the visibility of the floating element by flipping the `placement`
* in order to keep it in view when the preferred placement(s) will overflow the
* clipping boundary. Alternative to `autoPlacement`.
* @see https://floating-ui.com/docs/flip
*/
const flip = function (options) {
if (options === void 0) {
options = {};
}
return {
name: 'flip',
options,
async fn(state) {
var _middlewareData$arrow, _middlewareData$flip;
const {
placement,
middlewareData,
rects,
initialPlacement,
platform,
elements
} = state;
const {
mainAxis: checkMainAxis = true,
crossAxis: checkCrossAxis = true,
fallbackPlacements: specifiedFallbackPlacements,
fallbackStrategy = 'bestFit',
fallbackAxisSideDirection = 'none',
flipAlignment = true,
...detectOverflowOptions
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
// If a reset by the arrow was caused due to an alignment offset being
// added, we should skip any logic now since `flip()` has already done its
// work.
// https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643
if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
return {};
}
const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);
const isBasePlacement = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(initialPlacement) === initialPlacement;
const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositePlacement)(initialPlacement)] : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getExpandedPlacements)(initialPlacement));
if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {
fallbackPlacements.push(...(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxisPlacements)(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
}
const placements = [initialPlacement, ...fallbackPlacements];
const overflow = await detectOverflow(state, detectOverflowOptions);
const overflows = [];
let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
if (checkMainAxis) {
overflows.push(overflow[side]);
}
if (checkCrossAxis) {
const sides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(placement, rects, rtl);
overflows.push(overflow[sides[0]], overflow[sides[1]]);
}
overflowsData = [...overflowsData, {
placement,
overflows
}];
// One or more sides is overflowing.
if (!overflows.every(side => side <= 0)) {
var _middlewareData$flip2, _overflowsData$filter;
const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
const nextPlacement = placements[nextIndex];
if (nextPlacement) {
// Try next placement and re-run the lifecycle.
return {
data: {
index: nextIndex,
overflows: overflowsData
},
reset: {
placement: nextPlacement
}
};
}
// First, find the candidates that fit on the mainAxis side of overflow,
// then find the placement that fits the best on the main crossAxis side.
let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
// Otherwise fallback.
if (!resetPlacement) {
switch (fallbackStrategy) {
case 'bestFit':
{
var _overflowsData$map$so;
const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];
if (placement) {
resetPlacement = placement;
}
break;
}
case 'initialPlacement':
resetPlacement = initialPlacement;
break;
}
}
if (placement !== resetPlacement) {
return {
reset: {
placement: resetPlacement
}
};
}
}
return {};
}
};
};
function getSideOffsets(overflow, rect) {
return {
top: overflow.top - rect.height,
right: overflow.right - rect.width,
bottom: overflow.bottom - rect.height,
left: overflow.left - rect.width
};
}
function isAnySideFullyClipped(overflow) {
return _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.sides.some(side => overflow[side] >= 0);
}
/**
* Provides data to hide the floating element in applicable situations, such as
* when it is not in the same clipping context as the reference element.
* @see https://floating-ui.com/docs/hide
*/
const hide = function (options) {
if (options === void 0) {
options = {};
}
return {
name: 'hide',
options,
async fn(state) {
const {
rects
} = state;
const {
strategy = 'referenceHidden',
...detectOverflowOptions
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
switch (strategy) {
case 'referenceHidden':
{
const overflow = await detectOverflow(state, {
...detectOverflowOptions,
elementContext: 'reference'
});
const offsets = getSideOffsets(overflow, rects.reference);
return {
data: {
referenceHiddenOffsets: offsets,
referenceHidden: isAnySideFullyClipped(offsets)
}
};
}
case 'escaped':
{
const overflow = await detectOverflow(state, {
...detectOverflowOptions,
altBoundary: true
});
const offsets = getSideOffsets(overflow, rects.floating);
return {
data: {
escapedOffsets: offsets,
escaped: isAnySideFullyClipped(offsets)
}
};
}
default:
{
return {};
}
}
}
};
};
function getBoundingRect(rects) {
const minX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.left));
const minY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.top));
const maxX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.right));
const maxY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.bottom));
return {
x: minX,
y: minY,
width: maxX - minX,
height: maxY - minY
};
}
function getRectsByLine(rects) {
const sortedRects = rects.slice().sort((a, b) => a.y - b.y);
const groups = [];
let prevRect = null;
for (let i = 0; i < sortedRects.length; i++) {
const rect = sortedRects[i];
if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {
groups.push([rect]);
} else {
groups[groups.length - 1].push(rect);
}
prevRect = rect;
}
return groups.map(rect => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(rect)));
}
/**
* Provides improved positioning for inline reference elements that can span
* over multiple lines, such as hyperlinks or range selections.
* @see https://floating-ui.com/docs/inline
*/
const inline = function (options) {
if (options === void 0) {
options = {};
}
return {
name: 'inline',
options,
async fn(state) {
const {
placement,
elements,
rects,
platform,
strategy
} = state;
// A MouseEvent's client{X,Y} coords can be up to 2 pixels off a
// ClientRect's bounds, despite the event listener being triggered. A
// padding of 2 seems to handle this issue.
const {
padding = 2,
x,
y
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);
const clientRects = getRectsByLine(nativeClientRects);
const fallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(nativeClientRects));
const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);
function getBoundingClientRect() {
// There are two rects and they are disjoined.
if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {
// Find the first rect in which the point is fully inside.
return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;
}
// There are 2 or more connected rects.
if (clientRects.length >= 2) {
if ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y') {
const firstRect = clientRects[0];
const lastRect = clientRects[clientRects.length - 1];
const isTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'top';
const top = firstRect.top;
const bottom = lastRect.bottom;
const left = isTop ? firstRect.left : lastRect.left;
const right = isTop ? firstRect.right : lastRect.right;
const width = right - left;
const height = bottom - top;
return {
top,
bottom,
left,
right,
width,
height,
x: left,
y: top
};
}
const isLeftSide = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'left';
const maxRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...clientRects.map(rect => rect.right));
const minLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...clientRects.map(rect => rect.left));
const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);
const top = measureRects[0].top;
const bottom = measureRects[measureRects.length - 1].bottom;
const left = minLeft;
const right = maxRight;
const width = right - left;
const height = bottom - top;
return {
top,
bottom,
left,
right,
width,
height,
x: left,
y: top
};
}
return fallback;
}
const resetRects = await platform.getElementRects({
reference: {
getBoundingClientRect
},
floating: elements.floating,
strategy
});
if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {
return {
reset: {
rects: resetRects
}
};
}
return {};
}
};
};
// For type backwards-compatibility, the `OffsetOptions` type was also
// Derivable.
async function convertValueToCoords(state, options) {
const {
placement,
platform,
elements
} = state;
const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));
const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);
const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);
const isVertical = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';
const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
const crossAxisMulti = rtl && isVertical ? -1 : 1;
const rawValue = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
let {
mainAxis,
crossAxis,
alignmentAxis
} = typeof rawValue === 'number' ? {
mainAxis: rawValue,
crossAxis: 0,
alignmentAxis: null
} : {
mainAxis: 0,
crossAxis: 0,
alignmentAxis: null,
...rawValue
};
if (alignment && typeof alignmentAxis === 'number') {
crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;
}
return isVertical ? {
x: crossAxis * crossAxisMulti,
y: mainAxis * mainAxisMulti
} : {
x: mainAxis * mainAxisMulti,
y: crossAxis * crossAxisMulti
};
}
/**
* Modifies the placement by translating the floating element along the
* specified axes.
* A number (shorthand for `mainAxis` or distance), or an axes configuration
* object may be passed.
* @see https://floating-ui.com/docs/offset
*/
const offset = function (options) {
if (options === void 0) {
options = 0;
}
return {
name: 'offset',
options,
async fn(state) {
var _middlewareData$offse, _middlewareData$arrow;
const {
x,
y,
placement,
middlewareData
} = state;
const diffCoords = await convertValueToCoords(state, options);
// If the placement is the same and the arrow caused an alignment offset
// then we don't need to change the positioning coordinates.
if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
return {};
}
return {
x: x + diffCoords.x,
y: y + diffCoords.y,
data: {
...diffCoords,
placement
}
};
}
};
};
/**
* Optimizes the visibility of the floating element by shifting it in order to
* keep it in view when it will overflow the clipping boundary.
* @see https://floating-ui.com/docs/shift
*/
const shift = function (options) {
if (options === void 0) {
options = {};
}
return {
name: 'shift',
options,
async fn(state) {
const {
x,
y,
placement
} = state;
const {
mainAxis: checkMainAxis = true,
crossAxis: checkCrossAxis = false,
limiter = {
fn: _ref => {
let {
x,
y
} = _ref;
return {
x,
y
};
}
},
...detectOverflowOptions
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
const coords = {
x,
y
};
const overflow = await detectOverflow(state, detectOverflowOptions);
const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));
const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);
let mainAxisCoord = coords[mainAxis];
let crossAxisCoord = coords[crossAxis];
if (checkMainAxis) {
const minSide = mainAxis === 'y' ? 'top' : 'left';
const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
const min = mainAxisCoord + overflow[minSide];
const max = mainAxisCoord - overflow[maxSide];
mainAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, mainAxisCoord, max);
}
if (checkCrossAxis) {
const minSide = crossAxis === 'y' ? 'top' : 'left';
const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
const min = crossAxisCoord + overflow[minSide];
const max = crossAxisCoord - overflow[maxSide];
crossAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, crossAxisCoord, max);
}
const limitedCoords = limiter.fn({
...state,
[mainAxis]: mainAxisCoord,
[crossAxis]: crossAxisCoord
});
return {
...limitedCoords,
data: {
x: limitedCoords.x - x,
y: limitedCoords.y - y
}
};
}
};
};
/**
* Built-in `limiter` that will stop `shift()` at a certain point.
*/
const limitShift = function (options) {
if (options === void 0) {
options = {};
}
return {
options,
fn(state) {
const {
x,
y,
placement,
rects,
middlewareData
} = state;
const {
offset = 0,
mainAxis: checkMainAxis = true,
crossAxis: checkCrossAxis = true
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
const coords = {
x,
y
};
const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);
const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);
let mainAxisCoord = coords[mainAxis];
let crossAxisCoord = coords[crossAxis];
const rawOffset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(offset, state);
const computedOffset = typeof rawOffset === 'number' ? {
mainAxis: rawOffset,
crossAxis: 0
} : {
mainAxis: 0,
crossAxis: 0,
...rawOffset
};
if (checkMainAxis) {
const len = mainAxis === 'y' ? 'height' : 'width';
const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
if (mainAxisCoord < limitMin) {
mainAxisCoord = limitMin;
} else if (mainAxisCoord > limitMax) {
mainAxisCoord = limitMax;
}
}
if (checkCrossAxis) {
var _middlewareData$offse, _middlewareData$offse2;
const len = mainAxis === 'y' ? 'width' : 'height';
const isOriginSide = ['top', 'left'].includes((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));
const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);
if (crossAxisCoord < limitMin) {
crossAxisCoord = limitMin;
} else if (crossAxisCoord > limitMax) {
crossAxisCoord = limitMax;
}
}
return {
[mainAxis]: mainAxisCoord,
[crossAxis]: crossAxisCoord
};
}
};
};
/**
* Provides data that allows you to change the size of the floating element —
* for instance, prevent it from overflowing the clipping boundary or match the
* width of the reference element.
* @see https://floating-ui.com/docs/size
*/
const size = function (options) {
if (options === void 0) {
options = {};
}
return {
name: 'size',
options,
async fn(state) {
const {
placement,
rects,
platform,
elements
} = state;
const {
apply = () => {},
...detectOverflowOptions
} = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);
const overflow = await detectOverflow(state, detectOverflowOptions);
const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);
const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);
const isYAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';
const {
width,
height
} = rects.floating;
let heightSide;
let widthSide;
if (side === 'top' || side === 'bottom') {
heightSide = side;
widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
} else {
widthSide = side;
heightSide = alignment === 'end' ? 'top' : 'bottom';
}
const overflowAvailableHeight = height - overflow[heightSide];
const overflowAvailableWidth = width - overflow[widthSide];
const noShift = !state.middlewareData.shift;
let availableHeight = overflowAvailableHeight;
let availableWidth = overflowAvailableWidth;
if (isYAxis) {
const maximumClippingWidth = width - overflow.left - overflow.right;
availableWidth = alignment || noShift ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
} else {
const maximumClippingHeight = height - overflow.top - overflow.bottom;
availableHeight = alignment || noShift ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
}
if (noShift && !alignment) {
const xMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, 0);
const xMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.right, 0);
const yMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, 0);
const yMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.bottom, 0);
if (isYAxis) {
availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, overflow.right));
} else {
availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, overflow.bottom));
}
}
await apply({
...state,
availableWidth,
availableHeight
});
const nextDimensions = await platform.getDimensions(elements.floating);
if (width !== nextDimensions.width || height !== nextDimensions.height) {
return {
reset: {
rects: true
}
};
}
return {};
}
};
};
/***/ }),
/***/ "./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs":
/*!****************************************************************!*\
!*** ./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs ***!
\****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ arrow: () => (/* binding */ arrow),
/* harmony export */ autoPlacement: () => (/* binding */ autoPlacement),
/* harmony export */ autoUpdate: () => (/* binding */ autoUpdate),
/* harmony export */ computePosition: () => (/* binding */ computePosition),
/* harmony export */ detectOverflow: () => (/* reexport safe */ _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.detectOverflow),
/* harmony export */ flip: () => (/* binding */ flip),
/* harmony export */ getOverflowAncestors: () => (/* reexport safe */ _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getOverflowAncestors),
/* harmony export */ hide: () => (/* binding */ hide),
/* harmony export */ inline: () => (/* binding */ inline),
/* harmony export */ limitShift: () => (/* binding */ limitShift),
/* harmony export */ offset: () => (/* reexport safe */ _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.offset),
/* harmony export */ platform: () => (/* binding */ platform),
/* harmony export */ shift: () => (/* binding */ shift),
/* harmony export */ size: () => (/* binding */ size)
/* harmony export */ });
/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @floating-ui/utils */ "./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs");
/* harmony import */ var _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/core */ "./node_modules/@floating-ui/core/dist/floating-ui.core.mjs");
/* harmony import */ var _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/utils/dom */ "./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs");
function getCssDimensions(element) {
const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(element);
// In testing environments, the `width` and `height` properties are empty
// strings for SVG elements, returning NaN. Fallback to `0` in this case.
let width = parseFloat(css.width) || 0;
let height = parseFloat(css.height) || 0;
const hasOffset = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(element);
const offsetWidth = hasOffset ? element.offsetWidth : width;
const offsetHeight = hasOffset ? element.offsetHeight : height;
const shouldFallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.round)(width) !== offsetWidth || (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.round)(height) !== offsetHeight;
if (shouldFallback) {
width = offsetWidth;
height = offsetHeight;
}
return {
width,
height,
$: shouldFallback
};
}
function unwrapElement(element) {
return !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement)(element) ? element.contextElement : element;
}
function getScale(element) {
const domElement = unwrapElement(element);
if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(domElement)) {
return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(1);
}
const rect = domElement.getBoundingClientRect();
const {
width,
height,
$
} = getCssDimensions(domElement);
let x = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.round)(rect.width) : rect.width) / width;
let y = ($ ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.round)(rect.height) : rect.height) / height;
// 0, NaN, or Infinity should always fallback to 1.
if (!x || !Number.isFinite(x)) {
x = 1;
}
if (!y || !Number.isFinite(y)) {
y = 1;
}
return {
x,
y
};
}
const noOffsets = /*#__PURE__*/(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(0);
function getVisualOffsets(element) {
const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getWindow)(element);
if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isWebKit)() || !win.visualViewport) {
return noOffsets;
}
return {
x: win.visualViewport.offsetLeft,
y: win.visualViewport.offsetTop
};
}
function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {
if (isFixed === void 0) {
isFixed = false;
}
if (!floatingOffsetParent || isFixed && floatingOffsetParent !== (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getWindow)(element)) {
return false;
}
return isFixed;
}
function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
if (includeScale === void 0) {
includeScale = false;
}
if (isFixedStrategy === void 0) {
isFixedStrategy = false;
}
const clientRect = element.getBoundingClientRect();
const domElement = unwrapElement(element);
let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(1);
if (includeScale) {
if (offsetParent) {
if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement)(offsetParent)) {
scale = getScale(offsetParent);
}
} else {
scale = getScale(element);
}
}
const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(0);
let x = (clientRect.left + visualOffsets.x) / scale.x;
let y = (clientRect.top + visualOffsets.y) / scale.y;
let width = clientRect.width / scale.x;
let height = clientRect.height / scale.y;
if (domElement) {
const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getWindow)(domElement);
const offsetWin = offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement)(offsetParent) ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getWindow)(offsetParent) : offsetParent;
let currentIFrame = win.frameElement;
while (currentIFrame && offsetParent && offsetWin !== win) {
const iframeScale = getScale(currentIFrame);
const iframeRect = currentIFrame.getBoundingClientRect();
const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(currentIFrame);
const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
x *= iframeScale.x;
y *= iframeScale.y;
width *= iframeScale.x;
height *= iframeScale.y;
x += left;
y += top;
currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getWindow)(currentIFrame).frameElement;
}
}
return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.rectToClientRect)({
width,
height,
x,
y
});
}
const topLayerSelectors = [':popover-open', ':modal'];
function topLayer(floating) {
let isTopLayer = false;
let x = 0;
let y = 0;
function setIsTopLayer(selector) {
try {
isTopLayer = isTopLayer || floating.matches(selector);
} catch (e) {}
}
topLayerSelectors.forEach(selector => {
setIsTopLayer(selector);
});
if (isTopLayer) {
const containingBlock = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getContainingBlock)(floating);
if (containingBlock) {
const rect = containingBlock.getBoundingClientRect();
x = rect.x;
y = rect.y;
}
}
return [isTopLayer, x, y];
}
function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
let {
elements,
rect,
offsetParent,
strategy
} = _ref;
const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement)(offsetParent);
const [isTopLayer] = elements ? topLayer(elements.floating) : [false];
if (offsetParent === documentElement || isTopLayer) {
return rect;
}
let scroll = {
scrollLeft: 0,
scrollTop: 0
};
let scale = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(1);
const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(0);
const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent);
if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {
if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isOverflowElement)(documentElement)) {
scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeScroll)(offsetParent);
}
if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent)) {
const offsetRect = getBoundingClientRect(offsetParent);
scale = getScale(offsetParent);
offsets.x = offsetRect.x + offsetParent.clientLeft;
offsets.y = offsetRect.y + offsetParent.clientTop;
}
}
return {
width: rect.width * scale.x,
height: rect.height * scale.y,
x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,
y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y
};
}
function getClientRects(element) {
return Array.from(element.getClientRects());
}
function getWindowScrollBarX(element) {
// If <html> has a CSS width greater than the viewport, then this will be
// incorrect for RTL.
return getBoundingClientRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement)(element)).left + (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeScroll)(element).scrollLeft;
}
// Gets the entire size of the scrollable document area, even extending outside
// of the `<html>` and `<body>` rect bounds if horizontally scrollable.
function getDocumentRect(element) {
const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement)(element);
const scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeScroll)(element);
const body = element.ownerDocument.body;
const width = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
const height = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
let x = -scroll.scrollLeft + getWindowScrollBarX(element);
const y = -scroll.scrollTop;
if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(body).direction === 'rtl') {
x += (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.max)(html.clientWidth, body.clientWidth) - width;
}
return {
width,
height,
x,
y
};
}
function getViewportRect(element, strategy) {
const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getWindow)(element);
const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement)(element);
const visualViewport = win.visualViewport;
let width = html.clientWidth;
let height = html.clientHeight;
let x = 0;
let y = 0;
if (visualViewport) {
width = visualViewport.width;
height = visualViewport.height;
const visualViewportBased = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isWebKit)();
if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {
x = visualViewport.offsetLeft;
y = visualViewport.offsetTop;
}
}
return {
width,
height,
x,
y
};
}
// Returns the inner client rect, subtracting scrollbars if present.
function getInnerBoundingClientRect(element, strategy) {
const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
const top = clientRect.top + element.clientTop;
const left = clientRect.left + element.clientLeft;
const scale = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(element) ? getScale(element) : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(1);
const width = element.clientWidth * scale.x;
const height = element.clientHeight * scale.y;
const x = left * scale.x;
const y = top * scale.y;
return {
width,
height,
x,
y
};
}
function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {
let rect;
if (clippingAncestor === 'viewport') {
rect = getViewportRect(element, strategy);
} else if (clippingAncestor === 'document') {
rect = getDocumentRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement)(element));
} else if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement)(clippingAncestor)) {
rect = getInnerBoundingClientRect(clippingAncestor, strategy);
} else {
const visualOffsets = getVisualOffsets(element);
rect = {
...clippingAncestor,
x: clippingAncestor.x - visualOffsets.x,
y: clippingAncestor.y - visualOffsets.y
};
}
return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.rectToClientRect)(rect);
}
function hasFixedPositionAncestor(element, stopNode) {
const parentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getParentNode)(element);
if (parentNode === stopNode || !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement)(parentNode) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isLastTraversableNode)(parentNode)) {
return false;
}
return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);
}
// A "clipping ancestor" is an `overflow` element with the characteristic of
// clipping (or hiding) child elements. This returns all clipping ancestors
// of the given element up the tree.
function getClippingElementAncestors(element, cache) {
const cachedResult = cache.get(element);
if (cachedResult) {
return cachedResult;
}
let result = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getOverflowAncestors)(element, [], false).filter(el => (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement)(el) && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeName)(el) !== 'body');
let currentContainingBlockComputedStyle = null;
const elementIsFixed = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(element).position === 'fixed';
let currentNode = elementIsFixed ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getParentNode)(element) : element;
// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
while ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement)(currentNode) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isLastTraversableNode)(currentNode)) {
const computedStyle = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(currentNode);
const currentNodeIsContaining = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isContainingBlock)(currentNode);
if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
currentContainingBlockComputedStyle = null;
}
const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isOverflowElement)(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
if (shouldDropCurrentNode) {
// Drop non-containing blocks.
result = result.filter(ancestor => ancestor !== currentNode);
} else {
// Record last containing block for next iteration.
currentContainingBlockComputedStyle = computedStyle;
}
currentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getParentNode)(currentNode);
}
cache.set(element, result);
return result;
}
// Gets the maximum area that the element is visible in due to any number of
// clipping ancestors.
function getClippingRect(_ref) {
let {
element,
boundary,
rootBoundary,
strategy
} = _ref;
const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);
const clippingAncestors = [...elementClippingAncestors, rootBoundary];
const firstClippingAncestor = clippingAncestors[0];
const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);
accRect.top = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.max)(rect.top, accRect.top);
accRect.right = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.min)(rect.right, accRect.right);
accRect.bottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.min)(rect.bottom, accRect.bottom);
accRect.left = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.max)(rect.left, accRect.left);
return accRect;
}, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));
return {
width: clippingRect.right - clippingRect.left,
height: clippingRect.bottom - clippingRect.top,
x: clippingRect.left,
y: clippingRect.top
};
}
function getDimensions(element) {
const {
width,
height
} = getCssDimensions(element);
return {
width,
height
};
}
function getRectRelativeToOffsetParent(element, offsetParent, strategy, floating) {
const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent);
const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement)(offsetParent);
const isFixed = strategy === 'fixed';
const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
let scroll = {
scrollLeft: 0,
scrollTop: 0
};
const offsets = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.createCoords)(0);
if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isOverflowElement)(documentElement)) {
scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeScroll)(offsetParent);
}
if (isOffsetParentAnElement) {
const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
offsets.x = offsetRect.x + offsetParent.clientLeft;
offsets.y = offsetRect.y + offsetParent.clientTop;
} else if (documentElement) {
offsets.x = getWindowScrollBarX(documentElement);
}
}
let x = rect.left + scroll.scrollLeft - offsets.x;
let y = rect.top + scroll.scrollTop - offsets.y;
const [isTopLayer, topLayerX, topLayerY] = topLayer(floating);
if (isTopLayer) {
x += topLayerX;
y += topLayerY;
if (isOffsetParentAnElement) {
x += offsetParent.clientLeft;
y += offsetParent.clientTop;
}
}
return {
x,
y,
width: rect.width,
height: rect.height
};
}
function getTrueOffsetParent(element, polyfill) {
if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(element) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(element).position === 'fixed') {
return null;
}
if (polyfill) {
return polyfill(element);
}
return element.offsetParent;
}
// Gets the closest ancestor positioned element. Handles some edge cases,
// such as table ancestors and cross browser bugs.
function getOffsetParent(element, polyfill) {
const window = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getWindow)(element);
if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(element)) {
return window;
}
let offsetParent = getTrueOffsetParent(element, polyfill);
while (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isTableElement)(offsetParent) && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(offsetParent).position === 'static') {
offsetParent = getTrueOffsetParent(offsetParent, polyfill);
}
if (offsetParent && ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeName)(offsetParent) === 'html' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getNodeName)(offsetParent) === 'body' && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(offsetParent).position === 'static' && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isContainingBlock)(offsetParent))) {
return window;
}
return offsetParent || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getContainingBlock)(element) || window;
}
const getElementRects = async function (data) {
const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
const getDimensionsFn = this.getDimensions;
return {
reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy, data.floating),
floating: {
x: 0,
y: 0,
...(await getDimensionsFn(data.floating))
}
};
};
function isRTL(element) {
return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getComputedStyle)(element).direction === 'rtl';
}
const platform = {
convertOffsetParentRelativeRectToViewportRelativeRect,
getDocumentElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement,
getClippingRect,
getOffsetParent,
getElementRects,
getClientRects,
getDimensions,
getScale,
isElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.isElement,
isRTL
};
// https://samthor.au/2021/observing-dom/
function observeMove(element, onMove) {
let io = null;
let timeoutId;
const root = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getDocumentElement)(element);
function cleanup() {
var _io;
clearTimeout(timeoutId);
(_io = io) == null || _io.disconnect();
io = null;
}
function refresh(skip, threshold) {
if (skip === void 0) {
skip = false;
}
if (threshold === void 0) {
threshold = 1;
}
cleanup();
const {
left,
top,
width,
height
} = element.getBoundingClientRect();
if (!skip) {
onMove();
}
if (!width || !height) {
return;
}
const insetTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.floor)(top);
const insetRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.floor)(root.clientWidth - (left + width));
const insetBottom = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.floor)(root.clientHeight - (top + height));
const insetLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.floor)(left);
const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
const options = {
rootMargin,
threshold: (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.max)(0, (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_2__.min)(1, threshold)) || 1
};
let isFirstUpdate = true;
function handleObserve(entries) {
const ratio = entries[0].intersectionRatio;
if (ratio !== threshold) {
if (!isFirstUpdate) {
return refresh();
}
if (!ratio) {
timeoutId = setTimeout(() => {
refresh(false, 1e-7);
}, 100);
} else {
refresh(false, ratio);
}
}
isFirstUpdate = false;
}
// Older browsers don't support a `document` as the root and will throw an
// error.
try {
io = new IntersectionObserver(handleObserve, {
...options,
// Handle <iframe>s
root: root.ownerDocument
});
} catch (e) {
io = new IntersectionObserver(handleObserve, options);
}
io.observe(element);
}
refresh(true);
return cleanup;
}
/**
* Automatically updates the position of the floating element when necessary.
* Should only be called when the floating element is mounted on the DOM or
* visible on the screen.
* @returns cleanup function that should be invoked when the floating element is
* removed from the DOM or hidden from the screen.
* @see https://floating-ui.com/docs/autoUpdate
*/
function autoUpdate(reference, floating, update, options) {
if (options === void 0) {
options = {};
}
const {
ancestorScroll = true,
ancestorResize = true,
elementResize = typeof ResizeObserver === 'function',
layoutShift = typeof IntersectionObserver === 'function',
animationFrame = false
} = options;
const referenceEl = unwrapElement(reference);
const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getOverflowAncestors)(referenceEl) : []), ...(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_1__.getOverflowAncestors)(floating)] : [];
ancestors.forEach(ancestor => {
ancestorScroll && ancestor.addEventListener('scroll', update, {
passive: true
});
ancestorResize && ancestor.addEventListener('resize', update);
});
const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;
let reobserveFrame = -1;
let resizeObserver = null;
if (elementResize) {
resizeObserver = new ResizeObserver(_ref => {
let [firstEntry] = _ref;
if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {
// Prevent update loops when using the `size` middleware.
// https://github.com/floating-ui/floating-ui/issues/1740
resizeObserver.unobserve(floating);
cancelAnimationFrame(reobserveFrame);
reobserveFrame = requestAnimationFrame(() => {
var _resizeObserver;
(_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);
});
}
update();
});
if (referenceEl && !animationFrame) {
resizeObserver.observe(referenceEl);
}
resizeObserver.observe(floating);
}
let frameId;
let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
if (animationFrame) {
frameLoop();
}
function frameLoop() {
const nextRefRect = getBoundingClientRect(reference);
if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {
update();
}
prevRefRect = nextRefRect;
frameId = requestAnimationFrame(frameLoop);
}
update();
return () => {
var _resizeObserver2;
ancestors.forEach(ancestor => {
ancestorScroll && ancestor.removeEventListener('scroll', update);
ancestorResize && ancestor.removeEventListener('resize', update);
});
cleanupIo == null || cleanupIo();
(_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();
resizeObserver = null;
if (animationFrame) {
cancelAnimationFrame(frameId);
}
};
}
/**
* Optimizes the visibility of the floating element by choosing the placement
* that has the most space available automatically, without needing to specify a
* preferred placement. Alternative to `flip`.
* @see https://floating-ui.com/docs/autoPlacement
*/
const autoPlacement = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.autoPlacement;
/**
* Optimizes the visibility of the floating element by shifting it in order to
* keep it in view when it will overflow the clipping boundary.
* @see https://floating-ui.com/docs/shift
*/
const shift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.shift;
/**
* Optimizes the visibility of the floating element by flipping the `placement`
* in order to keep it in view when the preferred placement(s) will overflow the
* clipping boundary. Alternative to `autoPlacement`.
* @see https://floating-ui.com/docs/flip
*/
const flip = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.flip;
/**
* Provides data that allows you to change the size of the floating element —
* for instance, prevent it from overflowing the clipping boundary or match the
* width of the reference element.
* @see https://floating-ui.com/docs/size
*/
const size = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.size;
/**
* Provides data to hide the floating element in applicable situations, such as
* when it is not in the same clipping context as the reference element.
* @see https://floating-ui.com/docs/hide
*/
const hide = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.hide;
/**
* Provides data to position an inner element of the floating element so that it
* appears centered to the reference element.
* @see https://floating-ui.com/docs/arrow
*/
const arrow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.arrow;
/**
* Provides improved positioning for inline reference elements that can span
* over multiple lines, such as hyperlinks or range selections.
* @see https://floating-ui.com/docs/inline
*/
const inline = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.inline;
/**
* Built-in `limiter` that will stop `shift()` at a certain point.
*/
const limitShift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.limitShift;
/**
* Computes the `x` and `y` coordinates that will place the floating element
* next to a given reference element.
*/
const computePosition = (reference, floating, options) => {
// This caches the expensive `getClippingElementAncestors` function so that
// multiple lifecycle resets re-use the same result. It only lives for a
// single call. If other functions become expensive, we can add them as well.
const cache = new Map();
const mergedOptions = {
platform,
...options
};
const platformWithCache = {
...mergedOptions.platform,
_c: cache
};
return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.computePosition)(reference, floating, {
...mergedOptions,
platform: platformWithCache
});
};
/***/ }),
/***/ "./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs":
/*!************************************************************************!*\
!*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs ***!
\************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ getComputedStyle: () => (/* binding */ getComputedStyle),
/* harmony export */ getContainingBlock: () => (/* binding */ getContainingBlock),
/* harmony export */ getDocumentElement: () => (/* binding */ getDocumentElement),
/* harmony export */ getNearestOverflowAncestor: () => (/* binding */ getNearestOverflowAncestor),
/* harmony export */ getNodeName: () => (/* binding */ getNodeName),
/* harmony export */ getNodeScroll: () => (/* binding */ getNodeScroll),
/* harmony export */ getOverflowAncestors: () => (/* binding */ getOverflowAncestors),
/* harmony export */ getParentNode: () => (/* binding */ getParentNode),
/* harmony export */ getWindow: () => (/* binding */ getWindow),
/* harmony export */ isContainingBlock: () => (/* binding */ isContainingBlock),
/* harmony export */ isElement: () => (/* binding */ isElement),
/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement),
/* harmony export */ isLastTraversableNode: () => (/* binding */ isLastTraversableNode),
/* harmony export */ isNode: () => (/* binding */ isNode),
/* harmony export */ isOverflowElement: () => (/* binding */ isOverflowElement),
/* harmony export */ isShadowRoot: () => (/* binding */ isShadowRoot),
/* harmony export */ isTableElement: () => (/* binding */ isTableElement),
/* harmony export */ isWebKit: () => (/* binding */ isWebKit)
/* harmony export */ });
function getNodeName(node) {
if (isNode(node)) {
return (node.nodeName || '').toLowerCase();
}
// Mocked nodes in testing environments may not be instances of Node. By
// returning `#document` an infinite loop won't occur.
// https://github.com/floating-ui/floating-ui/issues/2317
return '#document';
}
function getWindow(node) {
var _node$ownerDocument;
return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
}
function getDocumentElement(node) {
var _ref;
return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
}
function isNode(value) {
return value instanceof Node || value instanceof getWindow(value).Node;
}
function isElement(value) {
return value instanceof Element || value instanceof getWindow(value).Element;
}
function isHTMLElement(value) {
return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;
}
function isShadowRoot(value) {
// Browsers without `ShadowRoot` support.
if (typeof ShadowRoot === 'undefined') {
return false;
}
return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
}
function isOverflowElement(element) {
const {
overflow,
overflowX,
overflowY,
display
} = getComputedStyle(element);
return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
}
function isTableElement(element) {
return ['table', 'td', 'th'].includes(getNodeName(element));
}
function isContainingBlock(element) {
const webkit = isWebKit();
const css = getComputedStyle(element);
// https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
}
function getContainingBlock(element) {
let currentNode = getParentNode(element);
while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {
if (isContainingBlock(currentNode)) {
return currentNode;
} else {
currentNode = getParentNode(currentNode);
}
}
return null;
}
function isWebKit() {
if (typeof CSS === 'undefined' || !CSS.supports) return false;
return CSS.supports('-webkit-backdrop-filter', 'none');
}
function isLastTraversableNode(node) {
return ['html', 'body', '#document'].includes(getNodeName(node));
}
function getComputedStyle(element) {
return getWindow(element).getComputedStyle(element);
}
function getNodeScroll(element) {
if (isElement(element)) {
return {
scrollLeft: element.scrollLeft,
scrollTop: element.scrollTop
};
}
return {
scrollLeft: element.pageXOffset,
scrollTop: element.pageYOffset
};
}
function getParentNode(node) {
if (getNodeName(node) === 'html') {
return node;
}
const result =
// Step into the shadow DOM of the parent of a slotted node.
node.assignedSlot ||
// DOM Element detected.
node.parentNode ||
// ShadowRoot detected.
isShadowRoot(node) && node.host ||
// Fallback.
getDocumentElement(node);
return isShadowRoot(result) ? result.host : result;
}
function getNearestOverflowAncestor(node) {
const parentNode = getParentNode(node);
if (isLastTraversableNode(parentNode)) {
return node.ownerDocument ? node.ownerDocument.body : node.body;
}
if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
return parentNode;
}
return getNearestOverflowAncestor(parentNode);
}
function getOverflowAncestors(node, list, traverseIframes) {
var _node$ownerDocument2;
if (list === void 0) {
list = [];
}
if (traverseIframes === void 0) {
traverseIframes = true;
}
const scrollableAncestor = getNearestOverflowAncestor(node);
const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
const win = getWindow(scrollableAncestor);
if (isBody) {
return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);
}
return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
}
/***/ }),
/***/ "./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs":
/*!********************************************************************!*\
!*** ./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs ***!
\********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ alignments: () => (/* binding */ alignments),
/* harmony export */ clamp: () => (/* binding */ clamp),
/* harmony export */ createCoords: () => (/* binding */ createCoords),
/* harmony export */ evaluate: () => (/* binding */ evaluate),
/* harmony export */ expandPaddingObject: () => (/* binding */ expandPaddingObject),
/* harmony export */ floor: () => (/* binding */ floor),
/* harmony export */ getAlignment: () => (/* binding */ getAlignment),
/* harmony export */ getAlignmentAxis: () => (/* binding */ getAlignmentAxis),
/* harmony export */ getAlignmentSides: () => (/* binding */ getAlignmentSides),
/* harmony export */ getAxisLength: () => (/* binding */ getAxisLength),
/* harmony export */ getExpandedPlacements: () => (/* binding */ getExpandedPlacements),
/* harmony export */ getOppositeAlignmentPlacement: () => (/* binding */ getOppositeAlignmentPlacement),
/* harmony export */ getOppositeAxis: () => (/* binding */ getOppositeAxis),
/* harmony export */ getOppositeAxisPlacements: () => (/* binding */ getOppositeAxisPlacements),
/* harmony export */ getOppositePlacement: () => (/* binding */ getOppositePlacement),
/* harmony export */ getPaddingObject: () => (/* binding */ getPaddingObject),
/* harmony export */ getSide: () => (/* binding */ getSide),
/* harmony export */ getSideAxis: () => (/* binding */ getSideAxis),
/* harmony export */ max: () => (/* binding */ max),
/* harmony export */ min: () => (/* binding */ min),
/* harmony export */ placements: () => (/* binding */ placements),
/* harmony export */ rectToClientRect: () => (/* binding */ rectToClientRect),
/* harmony export */ round: () => (/* binding */ round),
/* harmony export */ sides: () => (/* binding */ sides)
/* harmony export */ });
/**
* Custom positioning reference element.
* @see https://floating-ui.com/docs/virtual-elements
*/
const sides = ['top', 'right', 'bottom', 'left'];
const alignments = ['start', 'end'];
const placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []);
const min = Math.min;
const max = Math.max;
const round = Math.round;
const floor = Math.floor;
const createCoords = v => ({
x: v,
y: v
});
const oppositeSideMap = {
left: 'right',
right: 'left',
bottom: 'top',
top: 'bottom'
};
const oppositeAlignmentMap = {
start: 'end',
end: 'start'
};
function clamp(start, value, end) {
return max(start, min(value, end));
}
function evaluate(value, param) {
return typeof value === 'function' ? value(param) : value;
}
function getSide(placement) {
return placement.split('-')[0];
}
function getAlignment(placement) {
return placement.split('-')[1];
}
function getOppositeAxis(axis) {
return axis === 'x' ? 'y' : 'x';
}
function getAxisLength(axis) {
return axis === 'y' ? 'height' : 'width';
}
function getSideAxis(placement) {
return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
}
function getAlignmentAxis(placement) {
return getOppositeAxis(getSideAxis(placement));
}
function getAlignmentSides(placement, rects, rtl) {
if (rtl === void 0) {
rtl = false;
}
const alignment = getAlignment(placement);
const alignmentAxis = getAlignmentAxis(placement);
const length = getAxisLength(alignmentAxis);
let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';
if (rects.reference[length] > rects.floating[length]) {
mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
}
return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
}
function getExpandedPlacements(placement) {
const oppositePlacement = getOppositePlacement(placement);
return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
}
function getOppositeAlignmentPlacement(placement) {
return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
}
function getSideList(side, isStart, rtl) {
const lr = ['left', 'right'];
const rl = ['right', 'left'];
const tb = ['top', 'bottom'];
const bt = ['bottom', 'top'];
switch (side) {
case 'top':
case 'bottom':
if (rtl) return isStart ? rl : lr;
return isStart ? lr : rl;
case 'left':
case 'right':
return isStart ? tb : bt;
default:
return [];
}
}
function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
const alignment = getAlignment(placement);
let list = getSideList(getSide(placement), direction === 'start', rtl);
if (alignment) {
list = list.map(side => side + "-" + alignment);
if (flipAlignment) {
list = list.concat(list.map(getOppositeAlignmentPlacement));
}
}
return list;
}
function getOppositePlacement(placement) {
return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);
}
function expandPaddingObject(padding) {
return {
top: 0,
right: 0,
bottom: 0,
left: 0,
...padding
};
}
function getPaddingObject(padding) {
return typeof padding !== 'number' ? expandPaddingObject(padding) : {
top: padding,
right: padding,
bottom: padding,
left: padding
};
}
function rectToClientRect(rect) {
return {
...rect,
top: rect.y,
left: rect.x,
right: rect.x + rect.width,
bottom: rect.y + rect.height
};
}
/***/ }),
/***/ "./node_modules/stylis/src/Enum.js":
/*!*****************************************!*\
!*** ./node_modules/stylis/src/Enum.js ***!
\*****************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ CHARSET: () => (/* binding */ CHARSET),
/* harmony export */ COMMENT: () => (/* binding */ COMMENT),
/* harmony export */ COUNTER_STYLE: () => (/* binding */ COUNTER_STYLE),
/* harmony export */ DECLARATION: () => (/* binding */ DECLARATION),
/* harmony export */ DOCUMENT: () => (/* binding */ DOCUMENT),
/* harmony export */ FONT_FACE: () => (/* binding */ FONT_FACE),
/* harmony export */ FONT_FEATURE_VALUES: () => (/* binding */ FONT_FEATURE_VALUES),
/* harmony export */ IMPORT: () => (/* binding */ IMPORT),
/* harmony export */ KEYFRAMES: () => (/* binding */ KEYFRAMES),
/* harmony export */ LAYER: () => (/* binding */ LAYER),
/* harmony export */ MEDIA: () => (/* binding */ MEDIA),
/* harmony export */ MOZ: () => (/* binding */ MOZ),
/* harmony export */ MS: () => (/* binding */ MS),
/* harmony export */ NAMESPACE: () => (/* binding */ NAMESPACE),
/* harmony export */ PAGE: () => (/* binding */ PAGE),
/* harmony export */ RULESET: () => (/* binding */ RULESET),
/* harmony export */ SUPPORTS: () => (/* binding */ SUPPORTS),
/* harmony export */ VIEWPORT: () => (/* binding */ VIEWPORT),
/* harmony export */ WEBKIT: () => (/* binding */ WEBKIT)
/* harmony export */ });
var MS = '-ms-'
var MOZ = '-moz-'
var WEBKIT = '-webkit-'
var COMMENT = 'comm'
var RULESET = 'rule'
var DECLARATION = 'decl'
var PAGE = '@page'
var MEDIA = '@media'
var IMPORT = '@import'
var CHARSET = '@charset'
var VIEWPORT = '@viewport'
var SUPPORTS = '@supports'
var DOCUMENT = '@document'
var NAMESPACE = '@namespace'
var KEYFRAMES = '@keyframes'
var FONT_FACE = '@font-face'
var COUNTER_STYLE = '@counter-style'
var FONT_FEATURE_VALUES = '@font-feature-values'
var LAYER = '@layer'
/***/ }),
/***/ "./node_modules/stylis/src/Middleware.js":
/*!***********************************************!*\
!*** ./node_modules/stylis/src/Middleware.js ***!
\***********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ middleware: () => (/* binding */ middleware),
/* harmony export */ namespace: () => (/* binding */ namespace),
/* harmony export */ prefixer: () => (/* binding */ prefixer),
/* harmony export */ rulesheet: () => (/* binding */ rulesheet)
/* harmony export */ });
/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enum.js */ "./node_modules/stylis/src/Enum.js");
/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
/* harmony import */ var _Tokenizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Tokenizer.js */ "./node_modules/stylis/src/Tokenizer.js");
/* harmony import */ var _Serializer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Serializer.js */ "./node_modules/stylis/src/Serializer.js");
/* harmony import */ var _Prefixer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Prefixer.js */ "./node_modules/stylis/src/Prefixer.js");
/**
* @param {function[]} collection
* @return {function}
*/
function middleware (collection) {
var length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.sizeof)(collection)
return function (element, index, children, callback) {
var output = ''
for (var i = 0; i < length; i++)
output += collection[i](element, index, children, callback) || ''
return output
}
}
/**
* @param {function} callback
* @return {function}
*/
function rulesheet (callback) {
return function (element) {
if (!element.root)
if (element = element.return)
callback(element)
}
}
/**
* @param {object} element
* @param {number} index
* @param {object[]} children
* @param {function} callback
*/
function prefixer (element, index, children, callback) {
if (element.length > -1)
if (!element.return)
switch (element.type) {
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.DECLARATION: element.return = (0,_Prefixer_js__WEBPACK_IMPORTED_MODULE_2__.prefix)(element.value, element.length, children)
return
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.KEYFRAMES:
return (0,_Serializer_js__WEBPACK_IMPORTED_MODULE_3__.serialize)([(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {value: (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(element.value, '@', '@' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT)})], callback)
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.RULESET:
if (element.length)
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.combine)(element.props, function (value) {
switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(value, /(::plac\w+|:read-\w+)/)) {
// :read-(only|write)
case ':read-only': case ':read-write':
return (0,_Serializer_js__WEBPACK_IMPORTED_MODULE_3__.serialize)([(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /:(read-\w+)/, ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MOZ + '$1')]})], callback)
// :placeholder
case '::placeholder':
return (0,_Serializer_js__WEBPACK_IMPORTED_MODULE_3__.serialize)([
(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /:(plac\w+)/, ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'input-$1')]}),
(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /:(plac\w+)/, ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MOZ + '$1')]}),
(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /:(plac\w+)/, _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'input-$1')]})
], callback)
}
return ''
})
}
}
/**
* @param {object} element
* @param {number} index
* @param {object[]} children
*/
function namespace (element) {
switch (element.type) {
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.RULESET:
element.props = element.props.map(function (value) {
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.combine)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_4__.tokenize)(value), function (value, index, children) {
switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, 0)) {
// \f
case 12:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.substr)(value, 1, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.strlen)(value))
// \0 ( + > ~
case 0: case 40: case 43: case 62: case 126:
return value
// :
case 58:
if (children[++index] === 'global')
children[index] = '', children[++index] = '\f' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.substr)(children[index], index = 1, -1)
// \s
case 32:
return index === 1 ? '' : value
default:
switch (index) {
case 0: element = value
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.sizeof)(children) > 1 ? '' : value
case index = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.sizeof)(children) - 1: case 2:
return index === 2 ? value + element + element : value + element
default:
return value
}
}
})
})
}
}
/***/ }),
/***/ "./node_modules/stylis/src/Parser.js":
/*!*******************************************!*\
!*** ./node_modules/stylis/src/Parser.js ***!
\*******************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ comment: () => (/* binding */ comment),
/* harmony export */ compile: () => (/* binding */ compile),
/* harmony export */ declaration: () => (/* binding */ declaration),
/* harmony export */ parse: () => (/* binding */ parse),
/* harmony export */ ruleset: () => (/* binding */ ruleset)
/* harmony export */ });
/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Enum.js */ "./node_modules/stylis/src/Enum.js");
/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
/* harmony import */ var _Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tokenizer.js */ "./node_modules/stylis/src/Tokenizer.js");
/**
* @param {string} value
* @return {object[]}
*/
function compile (value) {
return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.dealloc)(parse('', null, null, null, [''], value = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.alloc)(value), 0, [0], value))
}
/**
* @param {string} value
* @param {object} root
* @param {object?} parent
* @param {string[]} rule
* @param {string[]} rules
* @param {string[]} rulesets
* @param {number[]} pseudo
* @param {number[]} points
* @param {string[]} declarations
* @return {object}
*/
function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {
var index = 0
var offset = 0
var length = pseudo
var atrule = 0
var property = 0
var previous = 0
var variable = 1
var scanning = 1
var ampersand = 1
var character = 0
var type = ''
var props = rules
var children = rulesets
var reference = rule
var characters = type
while (scanning)
switch (previous = character, character = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.next)()) {
// (
case 40:
if (previous != 108 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(characters, length - 1) == 58) {
if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.indexof)(characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.delimit)(character), '&', '&\f'), '&\f') != -1)
ampersand = -1
break
}
// " ' [
case 34: case 39: case 91:
characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.delimit)(character)
break
// \t \n \r \s
case 9: case 10: case 13: case 32:
characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.whitespace)(previous)
break
// \
case 92:
characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.escaping)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.caret)() - 1, 7)
continue
// /
case 47:
switch ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.peek)()) {
case 42: case 47:
;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(comment((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.commenter)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.next)(), (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.caret)()), root, parent), declarations)
break
default:
characters += '/'
}
break
// {
case 123 * variable:
points[index++] = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) * ampersand
// } ; \0
case 125 * variable: case 59: case 0:
switch (character) {
// \0 }
case 0: case 125: scanning = 0
// ;
case 59 + offset: if (ampersand == -1) characters = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(characters, /\f/g, '')
if (property > 0 && ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) - length))
(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(characters, ' ', '') + ';', rule, parent, length - 2), declarations)
break
// @ ;
case 59: characters += ';'
// { rule/at-rule
default:
;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)
if (character === 123)
if (offset === 0)
parse(characters, root, reference, reference, props, rulesets, length, points, children)
else
switch (atrule === 99 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(characters, 3) === 110 ? 100 : atrule) {
// d l m s
case 100: case 108: case 109: case 115:
parse(value, reference, reference, rule && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)
break
default:
parse(characters, reference, reference, reference, [''], children, 0, points, children)
}
}
index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo
break
// :
case 58:
length = 1 + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters), property = previous
default:
if (variable < 1)
if (character == 123)
--variable
else if (character == 125 && variable++ == 0 && (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.prev)() == 125)
continue
switch (characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.from)(character), character * variable) {
// &
case 38:
ampersand = offset > 0 ? 1 : (characters += '\f', -1)
break
// ,
case 44:
points[index++] = ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) - 1) * ampersand, ampersand = 1
break
// @
case 64:
// -
if ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.peek)() === 45)
characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.delimit)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.next)())
atrule = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.peek)(), offset = length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(type = characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.identifier)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.caret)())), character++
break
// -
case 45:
if (previous === 45 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) == 2)
variable = 0
}
}
return rulesets
}
/**
* @param {string} value
* @param {object} root
* @param {object?} parent
* @param {number} index
* @param {number} offset
* @param {string[]} rules
* @param {number[]} points
* @param {string} type
* @param {string[]} props
* @param {string[]} children
* @param {number} length
* @return {object}
*/
function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {
var post = offset - 1
var rule = offset === 0 ? rules : ['']
var size = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.sizeof)(rule)
for (var i = 0, j = 0, k = 0; i < index; ++i)
for (var x = 0, y = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, post + 1, post = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.abs)(j = points[i])), z = value; x < size; ++x)
if (z = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.trim)(j > 0 ? rule[x] + ' ' + y : (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(y, /&\f/g, rule[x])))
props[k++] = z
return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.node)(value, root, parent, offset === 0 ? _Enum_js__WEBPACK_IMPORTED_MODULE_2__.RULESET : type, props, children, length)
}
/**
* @param {number} value
* @param {object} root
* @param {object?} parent
* @return {object}
*/
function comment (value, root, parent) {
return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.node)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_2__.COMMENT, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.from)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.char)()), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, 2, -2), 0)
}
/**
* @param {string} value
* @param {object} root
* @param {object?} parent
* @param {number} length
* @return {object}
*/
function declaration (value, root, parent, length) {
return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_0__.node)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_2__.DECLARATION, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, 0, length), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, length + 1, -1), length)
}
/***/ }),
/***/ "./node_modules/stylis/src/Prefixer.js":
/*!*********************************************!*\
!*** ./node_modules/stylis/src/Prefixer.js ***!
\*********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ prefix: () => (/* binding */ prefix)
/* harmony export */ });
/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enum.js */ "./node_modules/stylis/src/Enum.js");
/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
/**
* @param {string} value
* @param {number} length
* @param {object[]} children
* @return {string}
*/
function prefix (value, length, children) {
switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.hash)(value, length)) {
// color-adjust
case 5103:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'print-' + value + value
// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)
case 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:
// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break
case 5572: case 6356: case 5844: case 3191: case 6645: case 3005:
// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,
case 6391: case 5879: case 5623: case 6135: case 4599: case 4855:
// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)
case 4215: case 6389: case 5109: case 5365: case 5621: case 3829:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + value
// tab-size
case 4789:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MOZ + value + value
// appearance, user-select, transform, hyphens, text-size-adjust
case 5349: case 4246: case 4810: case 6968: case 2756:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MOZ + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + value + value
// writing-mode
case 5936:
switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, length + 11)) {
// vertical-l(r)
case 114:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /[svh]\w+-[tblr]{2}/, 'tb') + value
// vertical-r(l)
case 108:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /[svh]\w+-[tblr]{2}/, 'tb-rl') + value
// horizontal(-)tb
case 45:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /[svh]\w+-[tblr]{2}/, 'lr') + value
// default: fallthrough to below
}
// flex, flex-direction, scroll-snap-type, writing-mode
case 6828: case 4268: case 2903:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + value + value
// order
case 6165:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-' + value + value
// align-items
case 5187:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(\w+).+(:[^]+)/, _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'box-$1$2' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-$1$2') + value
// align-self
case 5443:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-item-' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /flex-|-self/g, '') + (!(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(value, /flex-|baseline/) ? _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'grid-row-' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /flex-|-self/g, '') : '') + value
// align-content
case 4675:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-line-pack' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /align-content|flex-|-self/g, '') + value
// flex-shrink
case 5548:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, 'shrink', 'negative') + value
// flex-basis
case 5292:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, 'basis', 'preferred-size') + value
// flex-grow
case 6060:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'box-' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, '-grow', '') + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, 'grow', 'positive') + value
// transition
case 4554:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /([^-])(transform)/g, '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$2') + value
// cursor
case 6187:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(zoom-|grab)/, _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1'), /(image-set)/, _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1'), value, '') + value
// background, background-image
case 5495: case 3959:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(image-set\([^]*)/, _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1' + '$`$1')
// justify-content
case 4968:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(.+:)(flex-)?(.*)/, _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'box-pack:$3' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + value
// justify-self
case 4200:
if (!(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(value, /flex-|baseline/)) return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'grid-column-align' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.substr)(value, length) + value
break
// grid-template-(columns|rows)
case 2592: case 3360:
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, 'template-', '') + value
// grid-(row|column)-start
case 4384: case 3616:
if (children && children.some(function (element, index) { return length = index, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(element.props, /grid-\w+-end/) })) {
return ~(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.indexof)(value + (children = children[length].value), 'span') ? value : (_Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, '-start', '') + value + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + 'grid-row-span:' + (~(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.indexof)(children, 'span') ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(children, /\d+/) : +(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(children, /\d+/) - +(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(value, /\d+/)) + ';')
}
return _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, '-start', '') + value
// grid-(row|column)-end
case 4896: case 4128:
return (children && children.some(function (element) { return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.match)(element.props, /grid-\w+-start/) })) ? value : _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, '-end', '-span'), 'span ', '') + value
// (margin|padding)-inline-(start|end)
case 4095: case 3583: case 4068: case 2532:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(.+)-inline(.+)/, _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1$2') + value
// (min|max)?(width|height|inline-size|block-size)
case 8116: case 7059: case 5753: case 5535:
case 5445: case 5701: case 4933: case 4677:
case 5533: case 5789: case 5021: case 4765:
// stretch, max-content, min-content, fill-available
if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.strlen)(value) - 1 - length > 6)
switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, length + 1)) {
// (m)ax-content, (m)in-content
case 109:
// -
if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, length + 4) !== 45)
break
// (f)ill-available, (f)it-content
case 102:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(.+:)(.+)-([^]+)/, '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$2-$3' + '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MOZ + ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, length + 3) == 108 ? '$3' : '$2-$3')) + value
// (s)tretch
case 115:
return ~(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.indexof)(value, 'stretch') ? prefix((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, 'stretch', 'fill-available'), length, children) + value : value
}
break
// grid-(column|row)
case 5152: case 5920:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (_Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + a + ':' + b + f) + (c ? (_Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })
// position: sticky
case 4949:
// stick(y)?
if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, length + 6) === 121)
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, ':', ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT) + value
break
// display: (flex|inline-flex|grid|inline-grid)
case 6444:
switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, 14) === 45 ? 18 : 11)) {
// (inline-)?fle(x)
case 120:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, /(.+:)([^;\s!]+)(;|(\s+)?!.+)?/, '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$2$3' + '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS + '$2box$3') + value
// (inline-)?gri(d)
case 100:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, ':', ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_1__.MS) + value
}
break
// scroll-margin, scroll-margin-(top|right|bottom|left)
case 5719: case 2647: case 2135: case 3927: case 2391:
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.replace)(value, 'scroll-', 'scroll-snap-') + value
}
return value
}
/***/ }),
/***/ "./node_modules/stylis/src/Serializer.js":
/*!***********************************************!*\
!*** ./node_modules/stylis/src/Serializer.js ***!
\***********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ serialize: () => (/* binding */ serialize),
/* harmony export */ stringify: () => (/* binding */ stringify)
/* harmony export */ });
/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enum.js */ "./node_modules/stylis/src/Enum.js");
/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
/**
* @param {object[]} children
* @param {function} callback
* @return {string}
*/
function serialize (children, callback) {
var output = ''
var length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.sizeof)(children)
for (var i = 0; i < length; i++)
output += callback(children[i], i, children, callback) || ''
return output
}
/**
* @param {object} element
* @param {number} index
* @param {object[]} children
* @param {function} callback
* @return {string}
*/
function stringify (element, index, children, callback) {
switch (element.type) {
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.LAYER: if (element.children.length) break
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.IMPORT: case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.DECLARATION: return element.return = element.return || element.value
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.COMMENT: return ''
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'
case _Enum_js__WEBPACK_IMPORTED_MODULE_1__.RULESET: element.value = element.props.join(',')
}
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.strlen)(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''
}
/***/ }),
/***/ "./node_modules/stylis/src/Tokenizer.js":
/*!**********************************************!*\
!*** ./node_modules/stylis/src/Tokenizer.js ***!
\**********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ alloc: () => (/* binding */ alloc),
/* harmony export */ caret: () => (/* binding */ caret),
/* harmony export */ char: () => (/* binding */ char),
/* harmony export */ character: () => (/* binding */ character),
/* harmony export */ characters: () => (/* binding */ characters),
/* harmony export */ column: () => (/* binding */ column),
/* harmony export */ commenter: () => (/* binding */ commenter),
/* harmony export */ copy: () => (/* binding */ copy),
/* harmony export */ dealloc: () => (/* binding */ dealloc),
/* harmony export */ delimit: () => (/* binding */ delimit),
/* harmony export */ delimiter: () => (/* binding */ delimiter),
/* harmony export */ escaping: () => (/* binding */ escaping),
/* harmony export */ identifier: () => (/* binding */ identifier),
/* harmony export */ length: () => (/* binding */ length),
/* harmony export */ line: () => (/* binding */ line),
/* harmony export */ next: () => (/* binding */ next),
/* harmony export */ node: () => (/* binding */ node),
/* harmony export */ peek: () => (/* binding */ peek),
/* harmony export */ position: () => (/* binding */ position),
/* harmony export */ prev: () => (/* binding */ prev),
/* harmony export */ slice: () => (/* binding */ slice),
/* harmony export */ token: () => (/* binding */ token),
/* harmony export */ tokenize: () => (/* binding */ tokenize),
/* harmony export */ tokenizer: () => (/* binding */ tokenizer),
/* harmony export */ whitespace: () => (/* binding */ whitespace)
/* harmony export */ });
/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utility.js */ "./node_modules/stylis/src/Utility.js");
var line = 1
var column = 1
var length = 0
var position = 0
var character = 0
var characters = ''
/**
* @param {string} value
* @param {object | null} root
* @param {object | null} parent
* @param {string} type
* @param {string[] | string} props
* @param {object[] | string} children
* @param {number} length
*/
function node (value, root, parent, type, props, children, length) {
return {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}
}
/**
* @param {object} root
* @param {object} props
* @return {object}
*/
function copy (root, props) {
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.assign)(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)
}
/**
* @return {number}
*/
function char () {
return character
}
/**
* @return {number}
*/
function prev () {
character = position > 0 ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, --position) : 0
if (column--, character === 10)
column = 1, line--
return character
}
/**
* @return {number}
*/
function next () {
character = position < length ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, position++) : 0
if (column++, character === 10)
column = 1, line++
return character
}
/**
* @return {number}
*/
function peek () {
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, position)
}
/**
* @return {number}
*/
function caret () {
return position
}
/**
* @param {number} begin
* @param {number} end
* @return {string}
*/
function slice (begin, end) {
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.substr)(characters, begin, end)
}
/**
* @param {number} type
* @return {number}
*/
function token (type) {
switch (type) {
// \0 \t \n \r \s whitespace token
case 0: case 9: case 10: case 13: case 32:
return 5
// ! + , / > @ ~ isolate token
case 33: case 43: case 44: case 47: case 62: case 64: case 126:
// ; { } breakpoint token
case 59: case 123: case 125:
return 4
// : accompanied token
case 58:
return 3
// " ' ( [ opening delimit token
case 34: case 39: case 40: case 91:
return 2
// ) ] closing delimit token
case 41: case 93:
return 1
}
return 0
}
/**
* @param {string} value
* @return {any[]}
*/
function alloc (value) {
return line = column = 1, length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.strlen)(characters = value), position = 0, []
}
/**
* @param {any} value
* @return {any}
*/
function dealloc (value) {
return characters = '', value
}
/**
* @param {number} type
* @return {string}
*/
function delimit (type) {
return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.trim)(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))
}
/**
* @param {string} value
* @return {string[]}
*/
function tokenize (value) {
return dealloc(tokenizer(alloc(value)))
}
/**
* @param {number} type
* @return {string}
*/
function whitespace (type) {
while (character = peek())
if (character < 33)
next()
else
break
return token(type) > 2 || token(character) > 3 ? '' : ' '
}
/**
* @param {string[]} children
* @return {string[]}
*/
function tokenizer (children) {
while (next())
switch (token(character)) {
case 0: (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)(identifier(position - 1), children)
break
case 2: ;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)(delimit(character), children)
break
default: ;(0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.from)(character), children)
}
return children
}
/**
* @param {number} index
* @param {number} count
* @return {string}
*/
function escaping (index, count) {
while (--count && next())
// not 0-9 A-F a-f
if (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))
break
return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))
}
/**
* @param {number} type
* @return {number}
*/
function delimiter (type) {
while (next())
switch (character) {
// ] ) " '
case type:
return position
// " '
case 34: case 39:
if (type !== 34 && type !== 39)
delimiter(character)
break
// (
case 40:
if (type === 41)
delimiter(type)
break
// \
case 92:
next()
break
}
return position
}
/**
* @param {number} type
* @param {number} index
* @return {number}
*/
function commenter (type, index) {
while (next())
// //
if (type + character === 47 + 10)
break
// /*
else if (type + character === 42 + 42 && peek() === 47)
break
return '/*' + slice(index, position - 1) + '*' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.from)(type === 47 ? type : next())
}
/**
* @param {number} index
* @return {string}
*/
function identifier (index) {
while (!token(peek()))
next()
return slice(index, position)
}
/***/ }),
/***/ "./node_modules/stylis/src/Utility.js":
/*!********************************************!*\
!*** ./node_modules/stylis/src/Utility.js ***!
\********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ abs: () => (/* binding */ abs),
/* harmony export */ append: () => (/* binding */ append),
/* harmony export */ assign: () => (/* binding */ assign),
/* harmony export */ charat: () => (/* binding */ charat),
/* harmony export */ combine: () => (/* binding */ combine),
/* harmony export */ from: () => (/* binding */ from),
/* harmony export */ hash: () => (/* binding */ hash),
/* harmony export */ indexof: () => (/* binding */ indexof),
/* harmony export */ match: () => (/* binding */ match),
/* harmony export */ replace: () => (/* binding */ replace),
/* harmony export */ sizeof: () => (/* binding */ sizeof),
/* harmony export */ strlen: () => (/* binding */ strlen),
/* harmony export */ substr: () => (/* binding */ substr),
/* harmony export */ trim: () => (/* binding */ trim)
/* harmony export */ });
/**
* @param {number}
* @return {number}
*/
var abs = Math.abs
/**
* @param {number}
* @return {string}
*/
var from = String.fromCharCode
/**
* @param {object}
* @return {object}
*/
var assign = Object.assign
/**
* @param {string} value
* @param {number} length
* @return {number}
*/
function hash (value, length) {
return charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0
}
/**
* @param {string} value
* @return {string}
*/
function trim (value) {
return value.trim()
}
/**
* @param {string} value
* @param {RegExp} pattern
* @return {string?}
*/
function match (value, pattern) {
return (value = pattern.exec(value)) ? value[0] : value
}
/**
* @param {string} value
* @param {(string|RegExp)} pattern
* @param {string} replacement
* @return {string}
*/
function replace (value, pattern, replacement) {
return value.replace(pattern, replacement)
}
/**
* @param {string} value
* @param {string} search
* @return {number}
*/
function indexof (value, search) {
return value.indexOf(search)
}
/**
* @param {string} value
* @param {number} index
* @return {number}
*/
function charat (value, index) {
return value.charCodeAt(index) | 0
}
/**
* @param {string} value
* @param {number} begin
* @param {number} end
* @return {string}
*/
function substr (value, begin, end) {
return value.slice(begin, end)
}
/**
* @param {string} value
* @return {number}
*/
function strlen (value) {
return value.length
}
/**
* @param {any[]} value
* @return {number}
*/
function sizeof (value) {
return value.length
}
/**
* @param {any} value
* @param {any[]} array
* @return {any}
*/
function append (value, array) {
return array.push(value), value
}
/**
* @param {string[]} array
* @param {function} callback
* @return {string}
*/
function combine (array, callback) {
return array.map(callback).join('')
}
/***/ }),
/***/ "./googleFonts.json":
/*!**************************!*\
!*** ./googleFonts.json ***!
\**************************/
/***/ ((module) => {
module.exports = /*#__PURE__*/JSON.parse('{"Montserrat":{"category":"sans-serif","subsets":["cyrillic","cyrillic-ext","latin","latin-ext","vietnamese"],"variants":{"italic":{"100":{"local":[]},"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]},"900":{"local":[]}},"normal":{"100":{"local":[]},"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]},"900":{"local":[]}}},"version":"v26"},"Poppins":{"category":"sans-serif","subsets":["devanagari","latin","latin-ext"],"variants":{"italic":{"100":{"local":[]},"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]},"900":{"local":[]}},"normal":{"100":{"local":[]},"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]},"900":{"local":[]}}},"version":"v20"},"Plus Jakarta Sans":{"category":"sans-serif","subsets":["cyrillic-ext","latin","latin-ext","vietnamese"],"variants":{"italic":{"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]}},"normal":{"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]}}},"version":"v8"},"Jost":{"category":"sans-serif","subsets":["cyrillic","latin","latin-ext"],"variants":{"italic":{"100":{"local":[]},"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]},"900":{"local":[]}},"normal":{"100":{"local":[]},"200":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"600":{"local":[]},"700":{"local":[]},"800":{"local":[]},"900":{"local":[]}}},"version":"v15"},"Roboto":{"category":"sans-serif","subsets":["cyrillic","cyrillic-ext","greek","greek-ext","latin","latin-ext","vietnamese"],"variants":{"italic":{"100":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"700":{"local":[]},"900":{"local":[]}},"normal":{"100":{"local":[]},"300":{"local":[]},"400":{"local":[]},"500":{"local":[]},"700":{"local":[]},"900":{"local":[]}}},"version":"v30"}}');
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = (module) => {
/******/ var getter = module && module.__esModule ?
/******/ () => (module['default']) :
/******/ () => (module);
/******/ __webpack_require__.d(getter, { a: getter });
/******/ return getter;
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/global */
/******/ (() => {
/******/ __webpack_require__.g = (function() {
/******/ if (typeof globalThis === 'object') return globalThis;
/******/ try {
/******/ return this || new Function('return this')();
/******/ } catch (e) {
/******/ if (typeof window === 'object') return window;
/******/ }
/******/ })();
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/******/ /* webpack/runtime/make namespace object */
/******/ (() => {
/******/ // define __esModule on exports
/******/ __webpack_require__.r = (exports) => {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
(() => {
/*!**********************!*\
!*** ./src/index.js ***!
\**********************/
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _typographyComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./typographyComponent */ "./src/typographyComponent.js");
/* harmony import */ var _asyncMultiSelectControl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./asyncMultiSelectControl */ "./src/asyncMultiSelectControl.js");
/* harmony import */ var _presetComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./presetComponent */ "./src/presetComponent.js");
/* harmony import */ var _colorComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./colorComponent */ "./src/colorComponent.js");
/* harmony import */ var _typographyPreset__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./typographyPreset */ "./src/typographyPreset.js");
/* harmony import */ var _component_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./component-function */ "./src/component-function.js");
/* harmony import */ var _headerBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./headerBuilder */ "./src/headerBuilder.js");
/* harmony import */ var _responsiveBuilder__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./responsiveBuilder */ "./src/responsiveBuilder.js");
/* harmony import */ var _responsiveRadioImage__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./responsiveRadioImage */ "./src/responsiveRadioImage.js");
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./store */ "./src/store.js");
const {
RadioControl,
TabPanel,
Card,
CardBody,
ToggleControl,
ButtonGroup,
Button,
RangeControl,
CheckboxControl,
Dropdown,
Tooltip,
ColorIndicator,
ColorPicker,
Dashicon,
GradientPicker
} = wp.components;
const {
createRoot,
useState,
useEffect,
useMemo
} = wp.element;
const {
__
} = wp.i18n;
const {
escapeHTML
} = wp.escapeHtml;
const {
customize
} = wp;
const {
useSelect,
useDispatch
} = wp.data;
const BlogzeeUpsellWithPreview = props => {
const CHOICES = customize.settings.controls[props.setting].choices;
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, CHOICES && CHOICES.map(choice => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: `upsell-inner-wrap ${choice.classes ? choice.classes : ''}`
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
class: "button-icon"
}, choice.icon && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("i", {
class: `up-icon ${choice.icon}`
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
className: "upsell-button",
href: choice.url,
target: "__blank",
variant: "primary",
text: choice.label,
isSmall: true
})), choice.preview_url && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
class: "upsell-preview-frame",
src: choice.preview_url,
loading: "lazy"
}));
}));
};
const BlogzeeInfoBox = props => {
const {
label,
description,
choices
} = customize.settings.controls[props.setting];
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}), choices && choices.map(choice => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
className: "info-box-button",
href: choice.url,
target: "__blank",
variant: "primary",
text: choice.label,
isSmall: true
});
}));
};
const BlogzeeInfoBoxAction = props => {
const {
label,
description,
choices
} = customize.settings.controls[props.setting];
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Card, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(CardBody, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}), choices && choices.map(function (choice, key) {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
className: "info-box-button",
"data-action": choice.action,
variant: "primary",
text: choice.label,
isSmall: true
});
})));
};
// Radio Tab control
const BlogzeeRadioTab = props => {
const [tab, setTab] = useState(props.value);
const {
label,
description,
choices,
double_line: doubleLine
} = customize.settings.controls[props.setting];
useEffect(() => {
customize.value(props.setting)(tab);
}, [tab]);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: 'radio-tab-wrapper' + (doubleLine ? ' double-line' : '')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ButtonGroup, {
className: "control-inner"
}, choices && choices.map(choice => {
const {
value,
label: tabLabel = '',
icon
} = choice;
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: tab === value ? 'primary' : 'secondary',
onClick: () => setTab(value),
label: icon ? tabLabel : '',
showTooltip: icon ? true : false,
className: icon ? 'is-icon' : '',
tooltipPosition: 'top'
}, icon ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: icon
}) : tabLabel);
})));
};
// Radio Image control
const BlogzeeRadioImage = props => {
const [value, setValue] = useState(props.value);
const {
label,
description,
choices
} = customize.settings.controls[props.setting];
const [filteredChoices, setFilteredChoices] = useState([]);
useEffect(() => {
customize.value(props.setting)(value);
}, [value]);
useEffect(() => {
let filtered = Object.entries(choices).map(([itemKey, itemValue]) => {
const {
label,
url
} = itemValue;
return {
label: (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: label
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
src: url,
loading: "lazy"
})),
value: itemKey
};
});
setFilteredChoices(filtered);
}, []);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "radio-image-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "control-inner"
}, choices && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RadioControl, {
selected: value,
options: filteredChoices,
onChange: newValue => setValue(newValue)
})));
};
// Toggle Button control
const BlogzeeToggleButton = props => {
const [toggle, setToggle] = useState(props.value);
const {
label,
description
} = customize.settings.controls[props.setting];
const updateControl = newToggle => {
setToggle(newToggle);
customize.value(props.setting)(newToggle);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Card, {
elevation: 2,
isRounded: false,
isBorderless: true,
size: "small"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(CardBody, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ToggleControl, {
label: label,
help: toggle ? 'Currently enabled.' : 'Currently disabled.',
checked: toggle,
onChange: newToggle => updateControl(newToggle)
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
description: description
})));
};
// Simple Toggle Button control
const BlogzeeSimpleToggleButton = props => {
const [toggle, setToggle] = useState(props.value);
const updateControl = newToggle => {
setToggle(newToggle);
customize.value(props.setting)(newToggle);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ToggleControl, {
label: customize.settings.controls[props.setting].label,
checked: toggle,
onChange: newToggle => updateControl(newToggle)
});
};
// Checkbox control
const BlogzeeCheckbox = props => {
const [checkbox, setCheckbox] = useState(props.value);
const {
label,
description
} = customize.settings.controls[props.setting];
const updateControl = newCheckbox => {
setCheckbox(newCheckbox);
customize.value(props.setting)(newCheckbox);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(CheckboxControl, {
label: label,
help: description,
checked: checkbox,
onChange: newCheckbox => updateControl(newCheckbox)
});
};
// section tab control
const BlogzeeSectionTab = props => {
const {
value,
setting
} = props;
const {
choices
} = customize.settings.controls[props.setting];
useEffect(() => {
onTabChange(value);
});
function onTabChange(tabName) {
var sectionName = wp.customize.control(setting).section();
var controlsName = wp.customize.section(sectionName).controls();
controlsName.map((current, index) => {
if (index > 0) {
if (!('tab' in current.params)) current.params.tab = 'general';
if (current.id == 'header_textcolor') current.params.tab = 'design';
if (!wp.customize.control(current.id).active()) return;
if (current.params.tab === tabName) {
current.container[0].style.display = 'block';
} else {
current.container[0].style.display = 'none';
}
}
});
}
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(TabPanel, {
activeClass: "active-tab",
initialTabName: value,
onSelect: tabName => onTabChange(tabName),
tabs: choices
}, tab => {
return;
});
};
const BlogzeeSpacingControl = props => {
const [inputs, setInputs] = useState(props.value);
const [activeResponsive, setActiveResponsive] = useState('desktop');
const {
label,
description,
default: defaultValues,
input_attrs: inputAttrs
} = customize.settings.controls[props.setting];
const DIMENSIONS = ['top', 'right', 'bottom', 'left'];
useEffect(() => {
customize.value(props.setting)(inputs);
}, [inputs[activeResponsive].top, inputs[activeResponsive].left, inputs[activeResponsive].bottom, inputs[activeResponsive].right]);
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_6__.blogzeeReflectResponsiveInControl)(setActiveResponsive);
}, []);
const handleClick = () => {
setInputs({
...inputs,
[activeResponsive]: {
...inputs[activeResponsive],
'link': inputs[activeResponsive].link ? false : true
}
});
};
const handleOnChange = (newValue, side) => {
if (inputs[activeResponsive].link) {
setInputs({
...inputs,
[activeResponsive]: {
...inputs[activeResponsive],
"top": newValue,
"right": newValue,
"bottom": newValue,
"left": newValue
}
});
} else {
setInputs({
...inputs,
[activeResponsive]: {
...inputs[activeResponsive],
[side]: newValue
}
});
}
};
const handleDashIconClick = type => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_6__.blogzeeReflectResponsiveInCustomizer)(setActiveResponsive, type);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeGetResponsiveIcons, {
responsive: activeResponsive,
stateToSet: handleDashIconClick
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "reset-button",
icon: "image-rotate",
onClick: () => {
setInputs(defaultValues);
}
}))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-wrap"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("ul", {
className: 'dimensions' + (inputs[activeResponsive].link ? ' isactive' : ' not-active')
}, DIMENSIONS.map(dimension => {
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RangeControl, {
label: dimension,
onChange: newValue => {
handleOnChange(newValue, dimension);
},
value: inputs[activeResponsive][dimension],
min: inputAttrs.min,
max: inputAttrs.max,
step: inputAttrs.step,
resetFallbackValue: props.value,
allowReset: inputAttrs.reset
});
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "link-wrap",
onClick: handleClick,
"data-side": 'link'
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("label", {
className: "components-base-control__label"
}, "Link"), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
className: "linked",
icon: "admin-links"
})))));
};
const BlogzeeNumber = props => {
const [value, setValue] = useState(props.value);
const [activeResponsive, setActiveResponsive] = useState('desktop');
const {
label,
description,
input_attrs: inputAttrs,
responsive,
default: defaulValue
} = customize.settings.controls[props.setting];
const {
setHeaderFirstRow,
setHeaderSecondRow,
setHeaderThirdRow,
setFooterFirstRow,
setFooterSecondRow,
setFooterThirdRow
} = useDispatch(_store__WEBPACK_IMPORTED_MODULE_10__.store);
useEffect(() => {
customize.value(props.setting)(value);
switch (props.setting) {
/* Header Count */
case 'header_first_row_column':
setHeaderFirstRow(value);
break;
case 'header_second_row_column':
setHeaderSecondRow(value);
break;
case 'header_third_row_column':
setHeaderThirdRow(value);
break;
/* Footer Count */
case 'footer_first_row_column':
setFooterFirstRow(value);
break;
case 'footer_second_row_column':
setFooterSecondRow(value);
break;
case 'footer_third_row_column':
setFooterThirdRow(value);
break;
}
}, [responsive ? value[activeResponsive] : value]);
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_6__.blogzeeReflectResponsiveInControl)(setActiveResponsive);
}, []);
// handle responsive icon click
const handleDashIconClick = type => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_6__.blogzeeReflectResponsiveInCustomizer)(setActiveResponsive, type);
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}, responsive && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeGetResponsiveIcons, {
responsive: activeResponsive,
stateToSet: handleDashIconClick
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "image-rotate",
className: "reset-button",
onClick: () => setValue(defaulValue)
}))), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(RangeControl, {
onChange: newValue => setValue(responsive ? {
...value,
[activeResponsive]: newValue
} : newValue),
value: responsive ? value[activeResponsive] : value,
min: inputAttrs.min,
max: inputAttrs.max,
step: inputAttrs.step
})));
};
// Preset Color Picker control
const BlogzeeThemeColor = props => {
const [preset, setPreset] = useState(props.value);
const {
default: defaultValue,
involve,
label
} = customize.settings.controls[props.setting];
const {
setThemeColor,
setGradientThemeColor
} = useDispatch(_store__WEBPACK_IMPORTED_MODULE_10__.store);
useEffect(() => {
customize.value(props.setting)(preset);
if (involve === 'solid') {
setThemeColor(preset);
} else {
setGradientThemeColor(preset);
}
}, [preset]);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "control-header"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "control-header-trigger"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: "image-rotate",
className: "reset-button components-button is-secondary is-small",
onClick: () => setPreset(defaultValue)
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "control-content-wrap"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dropdown, {
popoverProps: {
resize: false,
noArrow: false,
flip: true,
variant: "unstyled",
placement: 'bottom-end'
},
contentClassName: "blogzee-color-control-popover",
renderToggle: ({
isOpen,
onToggle
}) => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tooltip, {
placement: "top",
delay: 200,
text: __(escapeHTML('Preset'), 'blogzee')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "color-indicator-wrapper"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ColorIndicator, {
colorValue: preset,
onClick: onToggle,
"aria-expanded": isOpen
}))),
renderContent: () => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, involve === 'solid' ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ColorPicker, {
color: preset,
onChange: newPreset => setPreset(newPreset),
enableAlpha: true
}) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(GradientPicker, {
value: preset,
onChange: newPreset => setPreset(newPreset),
__nextHasNoMargin: true,
gradients: []
}))
}))));
};
const BlogzeeBuilderReflector = props => {
const {
placement,
row,
label,
description,
builder,
responsive: responsiveBuilder,
responsive_builder_id: responsiveBuilderId
} = customize.settings.controls[props.setting];
const [responsive, setResponsive] = useState('desktop');
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_6__.blogzeeReflectResponsiveInControl)(setResponsive);
}, []);
const reflectors = useSelect(select => {
return {
/* Header builder reflector*/
"header": select(_store__WEBPACK_IMPORTED_MODULE_10__.store).getHeaderBuilderReflector(),
/* Footer builder reflector*/
"footer": select(_store__WEBPACK_IMPORTED_MODULE_10__.store).getFooterBuilderReflector(),
/* Responsive header builder reflector*/
"responsive-header": select(_store__WEBPACK_IMPORTED_MODULE_10__.store).getResponsiveHeaderBuilderReflector()
};
}, []);
/**
* All widgets of a row
*
* @since 1.0.0
*/
const widgets = useMemo(() => {
let builderValues;
if (responsive === 'desktop') {
builderValues = reflectors[placement];
} else {
builderValues = responsiveBuilder !== null ? reflectors[responsiveBuilder] : reflectors[placement];
}
if (builderValues === null || builderValues === undefined) return [];
if (Object.keys(builderValues).length > 0) {
const rowWidgets = builderValues[row - 1];
return Object.values(rowWidgets).flatMap(widget => widget);
} else {
return [];
}
}, [reflectors, responsive]);
/**
* Get instance of related builder using builder variable
*
* @since 1.0.0
*/
const builderWidgets = useMemo(() => {
let activeBuilder;
if (responsive === 'desktop') {
activeBuilder = builder;
} else {
activeBuilder = responsiveBuilderId !== null ? responsiveBuilderId : builder;
}
const sectionInstance = customize.control(activeBuilder).params.widgets;
return sectionInstance;
}, [responsive]);
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: "field-main"
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("ul", {
className: "field-wrap"
}, widgets.length > 0 ? widgets.map((widget, index) => {
const {
label: widgetLabel,
section
} = builderWidgets[widget];
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", {
className: "widget-reflector",
key: index,
onClick: () => customize.section(section).expand()
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "reflector-label"
}, widgetLabel), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: 'arrow-right-alt2'
}));
}) : (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("span", {
className: "no-widgets"
}, 'This row has no widgets.')));
};
/**
* Responsive Radio Tab control
*
* @since 1.0.0
*/
const BlogzeeResponsiveRadioTab = props => {
const [tab, setTab] = useState(props.value);
const {
label,
description,
choices,
double_line: doubleLine,
responsive: isResponsive
} = customize.settings.controls[props.setting];
const [responsive, setResponsive] = useState('desktop');
const _thisValue = isResponsive ? tab[responsive] : tab;
useEffect(() => {
customize.value(props.setting)(tab);
}, [tab]);
/**
* Reflect the active responsive in our custom controls
*
* @since 1.0.0
*/
useEffect(() => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_6__.blogzeeReflectResponsiveInControl)(setResponsive);
}, []);
/**
* Handle responsive icons click
*
* @since 1.0.0
*/
const handleResponsiveIconsClick = type => {
(0,_component_function__WEBPACK_IMPORTED_MODULE_6__.blogzeeReflectResponsiveInCustomizer)(setResponsive, type);
};
/**
* Handle button click
*
* @since 1.0.0
*/
const handleButtonClick = value => {
if (isResponsive) {
setTab({
...tab,
[responsive]: value
});
} else {
setTab(value);
}
};
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
className: 'radio-tab-wrapper' + (doubleLine ? ' double-line' : '')
}, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeControlHeader, {
label: label,
description: description
}, isResponsive && (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_component_function__WEBPACK_IMPORTED_MODULE_6__.BlogzeeGetResponsiveIcons, {
responsive: responsive,
stateToSet: handleResponsiveIconsClick
})), (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(ButtonGroup, {
className: "control-inner"
}, choices && choices.map(choice => {
const {
value,
label: tabLabel = '',
icon
} = choice;
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Button, {
variant: _thisValue === value ? 'primary' : 'secondary',
onClick: () => handleButtonClick(value),
label: icon ? tabLabel : '',
showTooltip: icon ? true : false,
className: icon ? 'is-icon' : '',
tooltipPosition: 'top'
}, icon ? (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Dashicon, {
icon: icon
}) : tabLabel);
})));
};
// Render components to html
customize.bind('ready', function () {
let blogzeeControls = ['toggle-button', 'simple-toggle', 'radio-tab', 'checkbox', 'typography', 'section-tab', 'upsell', 'info-box', 'info-box-action', 'spacing', 'number-range', 'preset', 'color-field', 'async-multiselect', 'typography-preset', 'theme-color', 'builder', 'radio-image', 'builder-reflector', 'responsive-builder', 'responsive-radio-image', 'responsive-radio-tab'];
const getComponent = (controlType, settingValue, setting) => {
if (controlType) {
switch (controlType) {
case 'toggle-button':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeToggleButton, {
value: settingValue,
setting: setting
});
break;
case 'simple-toggle':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeSimpleToggleButton, {
value: settingValue,
setting: setting
});
break;
case 'radio-tab':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeRadioTab, {
value: settingValue,
setting: setting
});
break;
case 'checkbox':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeCheckbox, {
value: settingValue,
setting: setting
});
break;
case 'typography':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_typographyComponent__WEBPACK_IMPORTED_MODULE_1__.BlogzeeTypography, {
value: settingValue,
setting: setting
});
break;
case 'typography-preset':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_typographyPreset__WEBPACK_IMPORTED_MODULE_5__.BlogzeeTypographyPreset, {
value: settingValue,
setting: setting
});
break;
case 'section-tab':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeSectionTab, {
value: settingValue,
setting: setting
});
break;
case 'upsell':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeUpsellWithPreview, {
value: settingValue,
setting: setting
});
break;
case 'info-box':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeInfoBox, {
value: settingValue,
setting: setting
});
break;
case 'info-box-action':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeInfoBoxAction, {
value: settingValue,
setting: setting
});
break;
case 'spacing':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeSpacingControl, {
value: settingValue,
setting: setting
});
break;
case 'number-range':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeNumber, {
value: settingValue,
setting: setting
});
break;
case 'preset':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_presetComponent__WEBPACK_IMPORTED_MODULE_3__.BlogzeePresetControl, {
value: settingValue,
setting: setting
});
break;
case 'color-field':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_colorComponent__WEBPACK_IMPORTED_MODULE_4__.BlogzeeColorComponent, {
value: settingValue,
setting: setting
});
break;
case 'async-multiselect':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_asyncMultiSelectControl__WEBPACK_IMPORTED_MODULE_2__.BlogzeeAsyncMultiselect, {
value: settingValue,
setting: setting
});
break;
case 'theme-color':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeThemeColor, {
value: settingValue,
setting: setting
});
break;
case 'builder':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_headerBuilder__WEBPACK_IMPORTED_MODULE_7__.BlogzeeHeaderBuilder, {
value: settingValue,
setting: setting
});
break;
case 'radio-image':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeRadioImage, {
value: settingValue,
setting: setting
});
break;
case 'builder-reflector':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeBuilderReflector, {
value: settingValue,
setting: setting
});
break;
case 'responsive-builder':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_responsiveBuilder__WEBPACK_IMPORTED_MODULE_8__.BlogzeeResponsiveBuilder, {
value: settingValue,
setting: setting
});
break;
case 'responsive-radio-image':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_responsiveRadioImage__WEBPACK_IMPORTED_MODULE_9__.BlogzeeResponsiveRadioImage, {
value: settingValue,
setting: setting
});
break;
case 'responsive-radio-tab':
return (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(BlogzeeResponsiveRadioTab, {
value: settingValue,
setting: setting
});
break;
}
}
};
blogzeeControls.map(controlType => {
const controls = document.getElementsByClassName("customize-" + controlType + "-control");
for (let control of controls) {
const setting = control.getAttribute('data-setting');
const settingValue = customize.settings.settings[setting].value;
if (control) {
createRoot(control).render(getComponent(controlType, settingValue, setting));
}
}
});
/* On Mobile options section expand show mobile view */
customize.section('mobile_options_section').expanded.bind(function (isExpanded) {
const footer = document.getElementById("customize-footer-actions");
if (isExpanded) {
footer.getElementsByClassName("preview-mobile")[0].click();
} else {
footer.getElementsByClassName("preview-desktop")[0].click();
}
});
});
})();
/******/ })()
;
//# sourceMappingURL=index.js.map