@hackplan/polaris
Version:
Shopify’s product component library
1,393 lines (1,203 loc) • 752 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var React = require('react');
var React__default = _interopDefault(React);
var hoistStatics = _interopDefault(require('hoist-non-react-statics'));
var debounce = _interopDefault(require('lodash/debounce'));
var geometry = require('@shopify/javascript-utilities/geometry');
var events = require('@shopify/javascript-utilities/events');
var tokens = require('@shopify/polaris-tokens');
var tokens__default = _interopDefault(tokens);
var createApp = require('@shopify/app-bridge');
var createApp__default = _interopDefault(createApp);
var tslib_1 = require('tslib');
var polarisIcons = require('@shopify/polaris-icons');
var dom = require('@shopify/javascript-utilities/dom');
var other = require('@shopify/javascript-utilities/other');
var focus = require('@shopify/javascript-utilities/focus');
var reactDom = require('react-dom');
var fastdom = require('@shopify/javascript-utilities/fastdom');
var isEqual = _interopDefault(require('lodash/isEqual'));
var math = require('@shopify/javascript-utilities/math');
var dates = require('@shopify/javascript-utilities/dates');
var reactTransitionGroup = require('@material-ui/react-transition-group');
var actions = require('@shopify/app-bridge/actions');
var range = _interopDefault(require('lodash/range'));
var reactBeautifulDnd = require('react-beautiful-dnd');
if (typeof window !== 'undefined') {
window.Polaris = window.Polaris || {};
window.Polaris.VERSION = '4.1.9';
}
var polarisVersion = '4.1.9';
(function (Key) {
Key[Key["Backspace"] = 8] = "Backspace";
Key[Key["Tab"] = 9] = "Tab";
Key[Key["Enter"] = 13] = "Enter";
Key[Key["Shift"] = 16] = "Shift";
Key[Key["Ctrl"] = 17] = "Ctrl";
Key[Key["Alt"] = 18] = "Alt";
Key[Key["Pause"] = 19] = "Pause";
Key[Key["CapsLock"] = 20] = "CapsLock";
Key[Key["Escape"] = 27] = "Escape";
Key[Key["Space"] = 32] = "Space";
Key[Key["PageUp"] = 33] = "PageUp";
Key[Key["PageDown"] = 34] = "PageDown";
Key[Key["End"] = 35] = "End";
Key[Key["Home"] = 36] = "Home";
Key[Key["LeftArrow"] = 37] = "LeftArrow";
Key[Key["UpArrow"] = 38] = "UpArrow";
Key[Key["RightArrow"] = 39] = "RightArrow";
Key[Key["DownArrow"] = 40] = "DownArrow";
Key[Key["Insert"] = 45] = "Insert";
Key[Key["Delete"] = 46] = "Delete";
Key[Key["Key0"] = 48] = "Key0";
Key[Key["Key1"] = 49] = "Key1";
Key[Key["Key2"] = 50] = "Key2";
Key[Key["Key3"] = 51] = "Key3";
Key[Key["Key4"] = 52] = "Key4";
Key[Key["Key5"] = 53] = "Key5";
Key[Key["Key6"] = 54] = "Key6";
Key[Key["Key7"] = 55] = "Key7";
Key[Key["Key8"] = 56] = "Key8";
Key[Key["Key9"] = 57] = "Key9";
Key[Key["KeyA"] = 65] = "KeyA";
Key[Key["KeyB"] = 66] = "KeyB";
Key[Key["KeyC"] = 67] = "KeyC";
Key[Key["KeyD"] = 68] = "KeyD";
Key[Key["KeyE"] = 69] = "KeyE";
Key[Key["KeyF"] = 70] = "KeyF";
Key[Key["KeyG"] = 71] = "KeyG";
Key[Key["KeyH"] = 72] = "KeyH";
Key[Key["KeyI"] = 73] = "KeyI";
Key[Key["KeyJ"] = 74] = "KeyJ";
Key[Key["KeyK"] = 75] = "KeyK";
Key[Key["KeyL"] = 76] = "KeyL";
Key[Key["KeyM"] = 77] = "KeyM";
Key[Key["KeyN"] = 78] = "KeyN";
Key[Key["KeyO"] = 79] = "KeyO";
Key[Key["KeyP"] = 80] = "KeyP";
Key[Key["KeyQ"] = 81] = "KeyQ";
Key[Key["KeyR"] = 82] = "KeyR";
Key[Key["KeyS"] = 83] = "KeyS";
Key[Key["KeyT"] = 84] = "KeyT";
Key[Key["KeyU"] = 85] = "KeyU";
Key[Key["KeyV"] = 86] = "KeyV";
Key[Key["KeyW"] = 87] = "KeyW";
Key[Key["KeyX"] = 88] = "KeyX";
Key[Key["KeyY"] = 89] = "KeyY";
Key[Key["KeyZ"] = 90] = "KeyZ";
Key[Key["LeftMeta"] = 91] = "LeftMeta";
Key[Key["RightMeta"] = 92] = "RightMeta";
Key[Key["Select"] = 93] = "Select";
Key[Key["Numpad0"] = 96] = "Numpad0";
Key[Key["Numpad1"] = 97] = "Numpad1";
Key[Key["Numpad2"] = 98] = "Numpad2";
Key[Key["Numpad3"] = 99] = "Numpad3";
Key[Key["Numpad4"] = 100] = "Numpad4";
Key[Key["Numpad5"] = 101] = "Numpad5";
Key[Key["Numpad6"] = 102] = "Numpad6";
Key[Key["Numpad7"] = 103] = "Numpad7";
Key[Key["Numpad8"] = 104] = "Numpad8";
Key[Key["Numpad9"] = 105] = "Numpad9";
Key[Key["Multiply"] = 106] = "Multiply";
Key[Key["Add"] = 107] = "Add";
Key[Key["Subtract"] = 109] = "Subtract";
Key[Key["Decimal"] = 110] = "Decimal";
Key[Key["Divide"] = 111] = "Divide";
Key[Key["F1"] = 112] = "F1";
Key[Key["F2"] = 113] = "F2";
Key[Key["F3"] = 114] = "F3";
Key[Key["F4"] = 115] = "F4";
Key[Key["F5"] = 116] = "F5";
Key[Key["F6"] = 117] = "F6";
Key[Key["F7"] = 118] = "F7";
Key[Key["F8"] = 119] = "F8";
Key[Key["F9"] = 120] = "F9";
Key[Key["F10"] = 121] = "F10";
Key[Key["F11"] = 122] = "F11";
Key[Key["F12"] = 123] = "F12";
Key[Key["NumLock"] = 144] = "NumLock";
Key[Key["ScrollLock"] = 145] = "ScrollLock";
Key[Key["Semicolon"] = 186] = "Semicolon";
Key[Key["Equals"] = 187] = "Equals";
Key[Key["Comma"] = 188] = "Comma";
Key[Key["Dash"] = 189] = "Dash";
Key[Key["Period"] = 190] = "Period";
Key[Key["ForwardSlash"] = 191] = "ForwardSlash";
Key[Key["GraveAccent"] = 192] = "GraveAccent";
Key[Key["OpenBracket"] = 219] = "OpenBracket";
Key[Key["BackSlash"] = 220] = "BackSlash";
Key[Key["CloseBracket"] = 221] = "CloseBracket";
Key[Key["SingleQuote"] = 222] = "SingleQuote";
})(exports.Key || (exports.Key = {}));
(function (TypeOf) {
TypeOf["Undefined"] = "undefined";
TypeOf["Object"] = "object";
TypeOf["Boolean"] = "boolean";
TypeOf["Number"] = "number";
TypeOf["String"] = "string";
TypeOf["Symbol"] = "symbol";
TypeOf["Function"] = "function";
})(exports.TypeOf || (exports.TypeOf = {}));
function _typeof(obj) {
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function (obj) {
return typeof obj;
};
} else {
_typeof = function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
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, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
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
}
});
if (superClass) _setPrototypeOf(subClass, superClass);
}
function _getPrototypeOf(o) {
_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
return _getPrototypeOf(o);
}
function _setPrototypeOf(o, p) {
_setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
return _setPrototypeOf(o, p);
}
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
function _possibleConstructorReturn(self, call) {
if (call && (typeof call === "object" || typeof call === "function")) {
return call;
}
return _assertThisInitialized(self);
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
}
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
}
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArray(iter) {
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}
function _iterableToArrayLimit(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance");
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
function classNames() {
for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {
classes[_key] = arguments[_key];
}
return classes.filter(Boolean).join(' ');
}
function variationName(name, value) {
return "".concat(name).concat(value.charAt(0).toUpperCase()).concat(value.slice(1));
}
var isServer = typeof window === 'undefined' || typeof document === 'undefined';
var I18nContext = React__default.createContext(undefined);
function useI18n() {
var i18n = React.useContext(I18nContext);
if (!i18n) {
throw new Error('No i18n was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.');
}
return i18n;
}
var OBJECT_NOTATION_MATCHER = /\[(.*?)\]|(\w+)/g;
function get(obj, keypath, defaultValue) {
if (obj == null) return undefined;
var keys = Array.isArray(keypath) ? keypath : getKeypath(keypath);
var acc = obj;
for (var i = 0; i < keys.length; i++) {
var val = acc[keys[i]];
if (val === undefined) return defaultValue;
acc = val;
}
return acc;
}
function getKeypath(str) {
var path = [];
var result;
while (result = OBJECT_NOTATION_MATCHER.exec(str)) {
var _result = result,
_result2 = _slicedToArray(_result, 3),
first = _result2[1],
second = _result2[2];
path.push(first || second);
}
return path;
}
function merge() {
var _final = {};
for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {
objs[_key] = arguments[_key];
}
for (var _i = 0, _objs = objs; _i < _objs.length; _i++) {
var obj = _objs[_i];
mergeRecursively(_final, obj);
}
return _final;
}
function mergeRecursively(objA, objB) {
for (var key in objB) {
if (!objB.hasOwnProperty(key)) {
continue;
} else if (isMergeableValue(objB[key]) && isMergeableValue(objA[key])) {
objA[key] = mergeRecursively(objA[key], objB[key]);
} else {
objA[key] = objB[key];
}
}
return objA;
}
function isMergeableValue(value) {
return value !== null && _typeof(value) === 'object';
}
var REPLACE_REGEX = /{([^}]*)}/g;
var I18n =
/*#__PURE__*/
function () {
function I18n(translation) {
var _this = this;
_classCallCheck(this, I18n);
this.translation = translation;
this.translate = function (id, replacements) {
return translate(id, _this.translation, replacements);
};
this.setTranslation(translation);
}
_createClass(I18n, [{
key: "setTranslation",
value: function setTranslation(translation) {
this.translation = Array.isArray(translation) ? merge.apply(void 0, _toConsumableArray(translation)) : translation;
}
}, {
key: "translationKeyExists",
value: function translationKeyExists(path) {
return Boolean(get(this.translation, path));
}
}]);
return I18n;
}();
function translate(id, translations, replacements) {
var text = get(translations, id);
if (!text) {
return '';
}
if (replacements) {
return text.replace(REPLACE_REGEX, function (match) {
var replacement = match.substring(1, match.length - 1);
if (!replacements.hasOwnProperty(replacement)) {
throw new Error("No replacement found for key '".concat(replacement, "'. The following replacements were passed: ").concat(Object.keys(replacements).map(function (key) {
return "'".concat(key, "'");
}).join(', ')));
}
return replacements[replacement];
});
}
return text;
}
var LinkContext = React__default.createContext(undefined);
function useLink() {
return React__default.useContext(LinkContext);
}
var ScrollLockManagerContext = React__default.createContext(undefined);
function useScrollLockManager() {
var scrollLockManager = React.useContext(ScrollLockManagerContext);
if (!scrollLockManager) {
throw new Error('No ScrollLockManager was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.');
}
return scrollLockManager;
}
var SCROLL_LOCKING_ATTRIBUTE = 'data-lock-scrolling';
var SCROLL_LOCKING_WRAPPER_ATTRIBUTE = 'data-lock-scrolling-wrapper';
var scrollPosition = 0;
var ScrollLockManager =
/*#__PURE__*/
function () {
function ScrollLockManager() {
_classCallCheck(this, ScrollLockManager);
this.scrollLocks = 0;
this.locked = false;
}
_createClass(ScrollLockManager, [{
key: "registerScrollLock",
value: function registerScrollLock() {
this.scrollLocks += 1;
this.handleScrollLocking();
}
}, {
key: "unregisterScrollLock",
value: function unregisterScrollLock() {
this.scrollLocks -= 1;
this.handleScrollLocking();
}
}, {
key: "handleScrollLocking",
value: function handleScrollLocking() {
if (isServer) return;
var scrollLocks = this.scrollLocks;
var _document = document,
body = _document.body;
var wrapper = body.firstElementChild;
if (scrollLocks === 0) {
body.removeAttribute(SCROLL_LOCKING_ATTRIBUTE);
if (wrapper) {
wrapper.removeAttribute(SCROLL_LOCKING_WRAPPER_ATTRIBUTE);
}
window.scroll(0, scrollPosition);
this.locked = false;
} else if (scrollLocks > 0 && !this.locked) {
scrollPosition = window.pageYOffset;
body.setAttribute(SCROLL_LOCKING_ATTRIBUTE, '');
if (wrapper) {
wrapper.setAttribute(SCROLL_LOCKING_WRAPPER_ATTRIBUTE, '');
wrapper.scrollTop = scrollPosition;
}
this.locked = true;
}
}
}, {
key: "resetScrollPosition",
value: function resetScrollPosition() {
scrollPosition = 0;
}
}]);
return ScrollLockManager;
}();
var ThemeContext = React__default.createContext(undefined);
function useTheme() {
var theme = React.useContext(ThemeContext);
if (!theme) {
throw new Error('No Theme was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.');
}
return theme;
}
var StickyManagerContext = React__default.createContext(undefined);
function useStickyManager() {
var stickyManager = React.useContext(StickyManagerContext);
if (!stickyManager) {
throw new Error('No StickyManager was provided. Your application must be wrapped in an <AppProvider> component. See https://polaris.shopify.com/components/structure/app-provider for implementation instructions.');
}
return stickyManager;
}
var scrollable = {
props: {
'data-polaris-scrollable': true
},
selector: '[data-polaris-scrollable]'
};
var overlay = {
props: {
'data-polaris-overlay': true
},
selector: '[data-polaris-overlay]'
};
var layer = {
props: {
'data-polaris-layer': true
},
selector: '[data-polaris-layer]'
};
var unstyled = {
props: {
'data-polaris-unstyled': true
},
selector: '[data-polaris-unstyled]'
};
var dataPolarisTopBar = {
props: {
'data-polaris-top-bar': true
},
selector: '[data-polaris-top-bar]'
};
var headerCell = {
props: {
'data-polaris-header-cell': true
},
selector: '[data-polaris-header-cell]'
};
var DATA_ATTRIBUTE = {
overlay: overlay,
layer: layer
}; // these match our values in duration.scss
var Duration;
(function (Duration) {
Duration[Duration["Instant"] = 0] = "Instant";
Duration[Duration["Fast"] = 100] = "Fast";
Duration[Duration["Base"] = 200] = "Base";
Duration[Duration["Slow"] = 300] = "Slow";
Duration[Duration["Slower"] = 400] = "Slower";
Duration[Duration["Slowest"] = 500] = "Slowest";
})(Duration || (Duration = {}));
var Breakpoints = {
navigationBarCollapsed: '768px',
stackedContent: '1043px'
};
var noWindowMatches = {
media: '',
addListener: noop,
removeListener: noop,
matches: false,
onchange: noop,
addEventListener: noop,
removeEventListener: noop,
dispatchEvent: function dispatchEvent(_) {
return true;
}
};
function noop() {}
function navigationBarCollapsed() {
return typeof window === 'undefined' ? noWindowMatches : window.matchMedia("(max-width: ".concat(Breakpoints.navigationBarCollapsed, ")"));
}
function stackedContent() {
return typeof window === 'undefined' ? noWindowMatches : window.matchMedia("(max-width: ".concat(Breakpoints.stackedContent, ")"));
}
var StickyManager =
/*#__PURE__*/
function () {
function StickyManager(container) {
var _this = this;
_classCallCheck(this, StickyManager);
this.stickyItems = [];
this.stuckItems = [];
this.topBarOffset = 0;
this.handleResize = debounce(function () {
_this.manageStickyItems();
}, 40, {
leading: true,
trailing: true,
maxWait: 40
});
this.handleScroll = debounce(function () {
_this.manageStickyItems();
}, 40, {
leading: true,
trailing: true,
maxWait: 40
});
if (container) {
this.setContainer(container);
}
}
_createClass(StickyManager, [{
key: "registerStickyItem",
value: function registerStickyItem(stickyItem) {
this.stickyItems.push(stickyItem);
}
}, {
key: "unregisterStickyItem",
value: function unregisterStickyItem(nodeToRemove) {
var nodeIndex = this.stickyItems.findIndex(function (_ref) {
var stickyNode = _ref.stickyNode;
return nodeToRemove === stickyNode;
});
this.stickyItems.splice(nodeIndex, 1);
}
}, {
key: "setContainer",
value: function setContainer(el) {
this.container = el;
if (isDocument(el)) {
this.setTopBarOffset();
}
events.addEventListener(this.container, 'scroll', this.handleScroll);
events.addEventListener(window, 'resize', this.handleResize);
this.manageStickyItems();
}
}, {
key: "removeScrollListener",
value: function removeScrollListener() {
if (this.container) {
events.removeEventListener(this.container, 'scroll', this.handleScroll);
events.removeEventListener(window, 'resize', this.handleResize);
}
}
}, {
key: "manageStickyItems",
value: function manageStickyItems() {
var _this2 = this;
if (this.stickyItems.length <= 0) {
return;
}
var scrollTop = scrollTopFor(this.container);
var containerTop = geometry.getRectForNode(this.container).top + this.topBarOffset;
this.stickyItems.forEach(function (stickyItem) {
var handlePositioning = stickyItem.handlePositioning;
var _this2$evaluateSticky = _this2.evaluateStickyItem(stickyItem, scrollTop, containerTop),
sticky = _this2$evaluateSticky.sticky,
top = _this2$evaluateSticky.top,
left = _this2$evaluateSticky.left,
width = _this2$evaluateSticky.width;
_this2.updateStuckItems(stickyItem, sticky);
handlePositioning(sticky, top, left, width);
});
}
}, {
key: "evaluateStickyItem",
value: function evaluateStickyItem(stickyItem, scrollTop, containerTop) {
var stickyNode = stickyItem.stickyNode,
placeHolderNode = stickyItem.placeHolderNode,
boundingElement = stickyItem.boundingElement,
offset = stickyItem.offset,
disableWhenStacked = stickyItem.disableWhenStacked;
if (disableWhenStacked && stackedContent().matches) {
return {
sticky: false,
top: 0,
left: 0,
width: 'auto'
};
}
var stickyOffset = offset ? this.getOffset(stickyNode) + parseInt(tokens__default.spacingLoose, 10) : this.getOffset(stickyNode);
var scrollPosition = scrollTop + stickyOffset;
var placeHolderNodeCurrentTop = placeHolderNode.getBoundingClientRect().top - containerTop + scrollTop;
var top = containerTop + stickyOffset;
var width = placeHolderNode.getBoundingClientRect().width;
var left = placeHolderNode.getBoundingClientRect().left;
var sticky;
if (boundingElement == null) {
sticky = scrollPosition >= placeHolderNodeCurrentTop;
} else {
var stickyItemHeight = stickyNode.getBoundingClientRect().height;
var stickyItemBottomPosition = boundingElement.getBoundingClientRect().bottom - stickyItemHeight + scrollTop - containerTop;
sticky = scrollPosition >= placeHolderNodeCurrentTop && scrollPosition < stickyItemBottomPosition;
}
return {
sticky: sticky,
top: top,
left: left,
width: width
};
}
}, {
key: "updateStuckItems",
value: function updateStuckItems(item, sticky) {
var stickyNode = item.stickyNode;
if (sticky && !this.isNodeStuck(stickyNode)) {
this.addStuckItem(item);
} else if (!sticky && this.isNodeStuck(stickyNode)) {
this.removeStuckItem(item);
}
}
}, {
key: "addStuckItem",
value: function addStuckItem(stickyItem) {
this.stuckItems.push(stickyItem);
}
}, {
key: "removeStuckItem",
value: function removeStuckItem(stickyItem) {
var nodeToRemove = stickyItem.stickyNode;
var nodeIndex = this.stuckItems.findIndex(function (_ref2) {
var stickyNode = _ref2.stickyNode;
return nodeToRemove === stickyNode;
});
this.stuckItems.splice(nodeIndex, 1);
}
}, {
key: "getOffset",
value: function getOffset(node) {
if (this.stuckItems.length === 0) {
return 0;
}
var offset = 0;
var count = 0;
var stuckNodesLength = this.stuckItems.length;
var nodeRect = geometry.getRectForNode(node);
while (count < stuckNodesLength) {
var stuckNode = this.stuckItems[count].stickyNode;
if (stuckNode !== node) {
var stuckNodeRect = geometry.getRectForNode(stuckNode);
if (!horizontallyOverlaps(nodeRect, stuckNodeRect)) {
offset += geometry.getRectForNode(stuckNode).height;
}
} else {
break;
}
count++;
}
return offset;
}
}, {
key: "isNodeStuck",
value: function isNodeStuck(node) {
var nodeFound = this.stuckItems.findIndex(function (_ref3) {
var stickyNode = _ref3.stickyNode;
return node === stickyNode;
});
return nodeFound >= 0;
}
}, {
key: "setTopBarOffset",
value: function setTopBarOffset() {
var topbarElement = this.container.querySelector(":not(".concat(scrollable.selector, ") ").concat(dataPolarisTopBar.selector));
this.topBarOffset = topbarElement ? topbarElement.clientHeight : 0;
}
}]);
return StickyManager;
}();
function isDocument(node) {
return node === document;
}
function scrollTopFor(container) {
return isDocument(container) ? document.body.scrollTop || document.documentElement.scrollTop : container.scrollTop;
}
function horizontallyOverlaps(rect1, rect2) {
var rect1Left = rect1.left;
var rect1Right = rect1.left + rect1.width;
var rect2Left = rect2.left;
var rect2Right = rect2.left + rect2.width;
return rect2Right < rect1Left || rect1Right < rect2Left;
}
var AppBridgeContext = React__default.createContext(undefined);
function useAppBridge() {
return React.useContext(AppBridgeContext);
}
function createAppBridge(_ref) {
var apiKey = _ref.apiKey,
shopOrigin = _ref.shopOrigin,
forceRedirect = _ref.forceRedirect;
var appBridge = apiKey ? createApp__default({
apiKey: apiKey,
shopOrigin: shopOrigin || createApp.getShopOrigin(),
forceRedirect: forceRedirect
}) : undefined;
if (appBridge !== undefined) {
// eslint-disable-next-line no-console
console.warn('Deprecation: Using `apiKey` and `shopOrigin` on `AppProvider` to initialize the Shopify App Bridge is deprecated. Support for this will be removed in v5.0. Use `Provider` from `@shopify/app-bridge-react` instead: https://help.shopify.com/en/api/embedded-apps/app-bridge/react-components/provider');
}
if (appBridge && appBridge.hooks) {
appBridge.hooks.set(createApp.LifecycleHook.DispatchAction, setClientInterfaceHook);
}
return appBridge;
}
var setClientInterfaceHook = function setClientInterfaceHook(next) {
return function (action) {
action.clientInterface = {
name: '@shopify/polaris',
version: polarisVersion
};
return next(action);
};
};
function withAppProvider() {
return function addProvider(WrappedComponent) {
var WithProvider = function WithProvider(props) {
var polaris = {
link: useLink(),
theme: useTheme(),
intl: useI18n(),
scrollLockManager: useScrollLockManager(),
stickyManager: useStickyManager(),
appBridge: useAppBridge()
};
return React__default.createElement(WrappedComponent, Object.assign({}, props, {
polaris: polaris
}));
};
var FinalComponent = hoistStatics(WithProvider, WrappedComponent);
return FinalComponent;
};
}
function Image(_a) {
var sourceSet = _a.sourceSet,
source = _a.source,
crossOrigin = _a.crossOrigin,
rest = tslib_1.__rest(_a, ["sourceSet", "source", "crossOrigin"]);
var finalSourceSet = sourceSet ? sourceSet.map(function (_ref) {
var subSource = _ref.source,
descriptor = _ref.descriptor;
return "".concat(subSource, " ").concat(descriptor);
}).join(',') : null;
return finalSourceSet ? // eslint-disable-next-line jsx-a11y/alt-text
React__default.createElement("img", Object.assign({
src: source,
srcSet: finalSourceSet,
crossOrigin: crossOrigin
}, rest)) : // eslint-disable-next-line jsx-a11y/alt-text
React__default.createElement("img", Object.assign({
src: source
}, rest, {
crossOrigin: crossOrigin
}));
}
var styles = {
"Avatar": "Polaris-Avatar",
"hidden": "Polaris-Avatar--hidden",
"sizeSmall": "Polaris-Avatar--sizeSmall",
"sizeMedium": "Polaris-Avatar--sizeMedium",
"sizeLarge": "Polaris-Avatar--sizeLarge",
"styleOne": "Polaris-Avatar--styleOne",
"styleTwo": "Polaris-Avatar--styleTwo",
"styleThree": "Polaris-Avatar--styleThree",
"styleFour": "Polaris-Avatar--styleFour",
"styleFive": "Polaris-Avatar--styleFive",
"styleSix": "Polaris-Avatar--styleSix",
"hasImage": "Polaris-Avatar--hasImage",
"Image": "Polaris-Avatar__Image",
"Initials": "Polaris-Avatar__Initials",
"Svg": "Polaris-Avatar__Svg"
};
var avatar1 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjMjQ1YjQ4IiBkPSJNMCAwaDEwMHYxMDBIMHoiLz48cGF0aCBmaWxsPSIjMmRiMTY3IiBkPSJNNjkgMHY2NS42NWwtMi0uMDF2MTkuODVsMiAuMDJWMTAwSDBWMGg2OXoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNjcgNjUuNjR2MTkuODVsLTI1LjU3LS4xOUMzMiA4NS4yMiAyNS42IDgxLjQ2IDI1LjY4IDcyLjA2cy4yNS02Ljc0LjI1LTYuNzR6Ii8+PHBhdGggZmlsbD0iIzhkYzk1OCIgZD0iTTg2Ljk5IDU4SDY5VjBoMTAuOTNsNy4wNiA1OHoiLz48cGF0aCBmaWxsPSIjZWJlZGYxIiBkPSJNMjQuNTMgNDAuMjlhMTIuMjMgMTIuMjMgMCAwIDEgMjQuNDYgMCIgb3BhY2l0eT0iLjIiLz48cGF0aCBmaWxsPSIjOGRjOTU4IiBkPSJNNTkuNjIgNThBMTAuNjkgMTAuNjkgMCAwIDEgODEgNTh6Ii8+PC9zdmc+Cg==';
var avatar2 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjMWUyNjVjIiBkPSJNLS4wMSAwaDEwMHYxMDBoLTEwMHoiLz48cGF0aCBmaWxsPSIjNWQ2Y2MxIiBkPSJNLS4wMSAwaDY5LjAydjEwMEgtLjAxeiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik02OC45MyA2NS44OGwtMjQuNDQtLjE5LS4wNSA2LjA5YzAgNS4yMiAzLjQ4IDkuNDcgOC42OSA5LjUybDE1LjguMTJ6Ii8+PHBhdGggZmlsbD0iI2ZmYzA0ZCIgZD0iTTY4LjkxIDExLjNsMTkuMTcgNDYuMjktMTkuMTctLjE2VjExLjN6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0yMy4yNSAzNi40M2EzLjIyIDMuMjIgMCAxIDAgMCA2LjQ0bTIxLjAxLTYuNDRhMy4yMiAzLjIyIDAgMCAwIDAgNi40NG0tMTMuNTUgMy43NGEzLjIyIDMuMjIgMCAxIDAgMCA2LjQ0bTMuMjItMjUuNTFhMy4yMiAzLjIyIDAgMCAwIDAgNi40NCIvPjwvc3ZnPgo=';
var avatar3 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjNWQ2Y2MxIiBkPSJNLS4wMiAwaDEwMHYxMDBoLTEwMHoiLz48cGF0aCBmaWxsPSIjNmRjYWNlIiBkPSJNLjM5IDBoNjkuMDJ2MTAwSC4zOXoiLz48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjUiIGQ9Ik0yNC4xOCAzMS4yMXYzLjQ3QTEwLjQzIDEwLjQzIDAgMCAwIDM0LjQgNDUuMjFhMTAuNDMgMTAuNDMgMCAwIDAgMTAuMjItMTAuNTN2LTMuNDciLz48cGF0aCBmaWxsPSIjZWJlZGYxIiBkPSJNMjAuMTEgNDkuMDdhMTYuMjIgMTYuMjIgMCAxIDEgMCAzMi40NCIgb3BhY2l0eT0iLjIiLz48cGF0aCBkPSJNNjkuNDQgMTguODNMOTAgNzFINjkuNDRWMTguODN6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTU3LjU5IDcxYTYgNiAwIDAgMSAxMiAweiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPgo=';
var avatar4 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjZmZlMGMzIiBkPSJNMC0uMDFoMTAwdjEwMEgweiIvPjxwYXRoIGZpbGw9IiM1ZDZjYzEiIGQ9Ik0wIDBoNjkuMDJ2MTAwSDB6Ii8+PHBhdGggZD0iTTY5LjAyIDBsMjQuMDMgNjEuNjlINjkuMDJWMHoiIGZpbGw9IiNmZjk2N2QiLz48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjUiIGQ9Ik0zMC42OSAzMS45MXYtM2MwLTQuNzggMy40Ni04LjY1IDgtOC42NXM4IDMuODcgOCA4LjY1djMiLz48cGF0aCBmaWxsPSIjZWJlZGYxIiBkPSJNMTIuNzYgNTYuMDZhMTMuMzYgMTMuMzYgMCAxIDEgMjYuNzIgMCIgb3BhY2l0eT0iLjIiLz48cGF0aCBkPSJNODAgNjEuNDZsLTI5LjM0LjIzdi03LjMzYzAtNi4yOCA0LjA3LTExLjM2IDEwLjM0LTExLjQ0bDE5LS4xNHoiIGZpbGw9IiNmZjk2N2QiLz48L3N2Zz4K';
var avatar5 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjOGRjOTU4IiBkPSJNMCAwaDcwLjAydjEwMEgweiIvPjxwYXRoIGQ9Ik02OS45MiAwdjU2LjMyTDQ5IDY3bC0uMyAyNS4wN1YxMDBIMTAwVjB6IiBmaWxsPSIjMmRiMTY3Ii8+PHBhdGggZmlsbD0iIzI0NWI0OCIgZD0iTTU5LjI3IDU4LjI5YTUuMjIgNS4yMiAwIDAgMC05LjQzIDQuNDgiLz48cGF0aCBkPSJNMjcuMTIgOS4zM2g0NC41M3YyLjE5SDI3LjEyem0tMTIuNDEgOS40OWg1Ni45NHYyLjE5SDE0LjcxeiIgZmlsbD0iIzJkYjE2NyIvPjxjaXJjbGUgY3g9IjE5LjY2IiBjeT0iNDQuOCIgcj0iMTEuMjIiIGZpbGw9IiNlYmVkZjEiIG9wYWNpdHk9Ii4yIi8+PC9zdmc+Cg==';
var avatar6 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNLS4wMi0uMDFoMTAwdjEwMGgtMTAweiIgZmlsbD0iI2ZmZTBjMyIvPjxwYXRoIGZpbGw9IiNmZjk2N2QiIGQ9Ik0wIDBoNjkuNDF2MTAwSDB6Ii8+PHBhdGggZD0iTTY5LjkyIDB2NDQuMzJMNTEuMzQgNTV2NDVIMTAwVjB6IiBmaWxsPSIjZmZlMGMzIi8+PHBhdGggZmlsbD0iIzMyY2FjNiIgZD0iTTM5LjMyIDc2YTExLjg1IDExLjg1IDAgMCAwIDEyIDExLjYyVjc2Ii8+PHBhdGggZmlsbD0iIzAwOTc5NiIgZD0iTTM5LjMyIDc2YTEyIDEyIDAgMCAxIDEyLTExLjgyVjc2Ii8+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmZmIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSI1IiBkPSJNNDMuNzQgMTkuODNhMTIuODIgMTIuODIgMCAxIDEtMjUuNjQgMCIvPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS13aWR0aD0iNCIgZD0iTTI3LjM5IDMxLjZsLTEuNTggNS45Nm05LjM3LTUuNzJsMi41NSA1LjQ3bTQuMjYtOS44NWwzLjUzIDQuNW0tMjUuNDMtNC41bC0zLjUzIDQuNSIvPjwvc3ZnPgo=';
var avatar7 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNMCAwaDEwMHYxMDAuNDhIMHoiIGZpbGw9IiM4ZGM5NTgiLz48cGF0aCBmaWxsPSIjMmRiMTY3IiBkPSJNODMgNjh2MzJsLTE0LS4xNnYuMTZIMFYwaDY5djY4aDE0eiIvPjxwYXRoIGQ9Ik02OS4yOSA0MS42OUgyMC42NnMtLjA5LTMtLjE3IDcuMTUgNyAxOC41MSAxNy4zNSAxOC41OWwzMS40NS41N3oiIGZpbGw9IiM4ZGM5NTgiLz48cGF0aCBkPSJNNjguNyAxMi40bDExLjU0IDI5LjI5SDY4LjdWMTIuNHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNjIuMjIgNDEuNjlhMy4zNCAzLjM0IDAgMSAxIDYuNjkgMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBmaWxsPSIjMjQ1YjQ4IiBkPSJNNDEuNDUgMTguMDZhMi41NyAyLjU3IDAgMCAwLTUuMTQgME0zMy4zMyAyNGEyLjU3IDIuNTcgMCAxIDAtNS4xNCAwbTIwLjM2IDIuNThhMi41NyAyLjU3IDAgMSAwLTUuMTQgMCIvPjwvc3ZnPgo=';
var avatar8 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBmaWxsPSIjZmZlZGI5IiBkPSJNMCAwaDEwMHYxMDBIMHoiLz48cGF0aCBkPSJNNjQuNjMgMTcuMzNhMTcgMTcgMCAwIDEgNSAyOS43MiAxNi43NSAxNi43NSAwIDAgMS01IDIuNjIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2Utd2lkdGg9IjUiLz48cGF0aCBmaWxsPSIjZmZjMDRkIiBkPSJNMCAwaDY5LjAydjEwMEgweiIvPjxjaXJjbGUgY3g9IjQ1LjExIiBjeT0iMzMuNDkiIHI9IjE2Ljk4IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtMzcuMDIgNDUuMTI0IDMzLjQ5MykiLz48cGF0aCBmaWxsPSIjNWQ2Y2MxIiBkPSJNNjkuMDIgMzQuNDhsMTkuNDcgMzguNzQtMTkuNDcgMS41M1YzNC40OHoiLz48cGF0aCBkPSJNNjEuNiAzMy42N2ExMC4xNyAxMC4xNyAwIDAgMSAxNS40LjA4IiBmaWxsPSJub25lIiBzdHJva2U9IiNmZmYiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLXdpZHRoPSI1Ii8+PC9zdmc+Cg==';
var avatar9 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48cGF0aCBkPSJNMCAwaDEwMHYxMDBIMHoiIGZpbGw9IiNmZmMwNGQiLz48cGF0aCBkPSJNMCAwaDY5LjQxdjEwMEgweiIgZmlsbD0iIzVkNmNjMSIvPjxwYXRoIGQ9Ik03MC4yMSA4MC44OGgtMTUuMWMtNC44MSAwLTUuNjgtNS44NC01LjY4LTUuODRoMjAuNzgiIGZpbGw9IiNmZmMwNGQiLz48cGF0aCBkPSJNODIgNjAuNDhsLTE0IC4yNVYwaDEwLjE3QzgwLjU5IDIwLjE0IDgyIDYwLjQ4IDgyIDYwLjQ4eiIgZmlsbD0iIzVkNmNjMSIvPjxwYXRoIGZpbGw9IiM0MTIzNmUiIGQ9Ik01Ny43MSA2MC40OGE1LjQ0IDUuNDQgMCAxIDEgMTAuODcgMCIvPjxjaXJjbGUgY3g9IjI0Ljc3IiBjeT0iNDAuMTkiIHI9IjExLjIyIiBmaWxsPSIjZWJlZGYxIiBvcGFjaXR5PSIuMiIvPjwvc3ZnPgo=';
var avatars = /*#__PURE__*/Object.freeze({
avatarOne: avatar1,
avatarTwo: avatar2,
avatarThree: avatar3,
avatarFour: avatar4,
avatarFive: avatar5,
avatarSix: avatar6,
avatarSeven: avatar7,
avatarEight: avatar8,
avatarNine: avatar9
});
var STYLE_CLASSES = ['one', 'two', 'three', 'four', 'five', 'six'];
var AVATAR_IMAGES = Object.keys(avatars).map( // import/namespace does not allow computed values by default
// eslint-disable-next-line import/namespace
function (key) {
return avatars[key];
});
var Avatar =
/*#__PURE__*/
function (_React$PureComponent) {
_inherits(Avatar, _React$PureComponent);
function Avatar() {
var _this;
_classCallCheck(this, Avatar);
_this = _possibleConstructorReturn(this, _getPrototypeOf(Avatar).apply(this, arguments));
_this.state = {
hasError: false,
hasLoaded: false
};
_this.handleError = function () {
_this.setState({
hasError: true,
hasLoaded: false
});
};
_this.handleLoad = function () {
_this.setState({
hasLoaded: true,
hasError: false
});
};
return _this;
}
_createClass(Avatar, [{
key: "render",
value: function render() {
var _this$props = this.props,
name = _this$props.name,
source = _this$props.source,
initials = _this$props.initials,
customer = _this$props.customer,
_this$props$size = _this$props.size,
size = _this$props$size === void 0 ? 'medium' : _this$props$size,
accessibilityLabel = _this$props.accessibilityLabel,
intl = _this$props.polaris.intl;
var _this$state = this.state,
hasError = _this$state.hasError,
hasLoaded = _this$state.hasLoaded;
var hasImage = (source || customer) && !hasError;
var nameString = name || initials;
var finalSource;
var label;
if (accessibilityLabel) {
label = accessibilityLabel;
} else if (name) {
label = name;
} else if (initials) {
var splitInitials = initials.split('').join(' ');
label = intl.translate('Polaris.Avatar.labelWithInitials', {
initials: splitInitials
});
} else {
label = intl.translate('Polaris.Avatar.label');
}
if (source) {
finalSource = source;
} else if (customer) {
finalSource = customerPlaceholder(nameString);
}
var className = classNames(styles.Avatar, styles[variationName('style', styleClass(nameString))], size && styles[variationName('size', size)], hasImage && !hasLoaded && styles.hidden, hasImage && styles.hasImage);
var imageMarkUp = finalSource && !isServer && !hasError ? React__default.createElement(Image, {
className: styles.Image,
source: finalSource,
alt: "",
role: "presentation",
onLoad: this.handleLoad,
onError: this.handleError
}) : null; // Use `dominant-baseline: central` instead of `dy` when Edge supports it.
var verticalOffset = '0.35em';
var initialsMarkup = initials && !hasImage ? React__default.createElement("span", {
className: styles.Initials
}, React__default.createElement("svg", {
className: styles.Svg,
viewBox: "0 0 48 48"
}, React__default.createElement("text", {
x: "50%",
y: "50%",
dy: verticalOffset,
fill: "currentColor",
fontSize: "26",
textAnchor: "middle"
}, initials))) : null;
return React__default.createElement("span", {
"aria-label": label,
role: "img",
className: className
}, initialsMarkup, imageMarkUp);
}
}], [{
key: "getDerivedStateFromProps",
value: function getDerivedStateFromProps(props, state) {
if (props.source !== state.prevSource) {
return {
prevSource: props.source,
hasError: false,
hasLoaded: false
};
}
return null;
}
}]);
return Avatar;
}(React__default.PureComponent);
function styleClass(name) {
return name ? STYLE_CLASSES[name.charCodeAt(0) % STYLE_CLASSES.length] : STYLE_CLASSES[0];
}
function customerPlaceholder(name) {
return name ? AVATAR_IMAGES[name.charCodeAt(0) % AVATAR_IMAGES.length] : AVATAR_IMAGES[0];
}
var Avatar$1 = withAppProvider()(Avatar);
function handleMouseUpByBlurring(_ref) {
var currentTarget = _ref.currentTarget;
currentTarget.blur();
}
function UnstyledLink(props, _ref) {
var LinkComponent = useLink();
if (LinkComponent) {
return React__default.createElement(LinkComponent, Object.assign({}, unstyled.props, props));
}
var external = props.external,
url = props.url,
rest = tslib_1.__rest(props, ["external", "url"]);
var target = external ? '_blank' : undefined;
var rel = external ? 'noopener noreferrer' : undefined;
return React__default.createElement("a", Object.assign({
target: target
}, rest, {
href: url,
rel: rel
}, unstyled.props));
}
var UnstyledLink$1 = React__default.memo(React__default.forwardRef(UnstyledLink));
var styles$1 = {
"Icon": "Polaris-Icon",
"hasBackdrop": "Polaris-Icon--hasBackdrop",
"isColored": "Polaris-Icon--isColored",
"colorWhite": "Polaris-Icon--colorWhite",
"colorBlack": "Polaris-Icon--colorBlack",
"colorSkyLighter": "Polaris-Icon--colorSkyLighter",
"colorSkyLight": "Polaris-Icon--colorSkyLight",
"colorSky": "Polaris-Icon--colorSky",
"colorSkyDark": "Polaris-Icon--colorSkyDark",
"colorInkLightest": "Polaris-Icon--colorInkLightest",
"colorInkLighter": "Polaris-Icon--colorInkLighter",
"colorInkLight": "Polaris-Icon--colorInkLight",
"colorInk": "Polaris-Icon--colorInk",
"colorBlueLighter": "Polaris-Icon--colorBlueLighter",
"colorBlueLight": "Polaris-Icon--colorBlueLight",
"colorBlue": "Polaris-Icon--colorBlue",
"colorBlueDark": "Polaris-Icon--colorBlueDark",
"colorBlueDarker": "Polaris-Icon--colorBlueDarker",
"colorIndigoLighter": "Polaris-Icon--colorIndigoLighter",
"colorIndigoLight": "Polaris-Icon--colorIndigoLight",
"colorIndigo": "Polaris-Icon--colorIndigo",
"colorIndigoDark": "Polaris-Icon--colorIndigoDark",
"colorIndigoDarker": "Polaris-Icon--colorIndigoDarker",
"colorTealLighter": "Polaris-Icon--colorTealLighter",
"colorTealLight": "Polaris-Icon--colorTealLight",
"colorTeal": "Polaris-Icon--colorTeal",
"colorTealDark": "Polaris-Icon--colorTealDark",
"colorTealDarker": "Polaris-Icon--colorTealDarker",
"colorGreenLighter": "Polaris-Icon--colorGreenLighter",
"colorGreen": "Polaris-Icon--colorGreen",
"colorGreenDark": "Polaris-Icon--colorGreenDark",
"colorYellowLighter": "Polaris-Icon--colorYellowLighter",
"colorYellow": "Polaris-Icon--colorYellow",
"colorYellowDark": "Polaris-Icon--colorYellowDark",
"colorOrange": "Polaris-Icon--colorOrange",
"colorOrangeDark": "Polaris-Icon--colorOrangeDark",
"colorRedLighter": "Polaris-Icon--colorRedLighter",
"colorRed": "Polaris-Icon--colorRed",
"colorRedDark": "Polaris-Icon--colorRedDark",
"colorPurple": "Polaris-Icon--colorPurple",
"Svg": "Polaris-Icon__Svg",
"Img": "Polaris-Icon__Img",
"Placeholder": "Polaris-Icon__Placeholder"
};
var COLORS_WITH_BACKDROPS = ['teal', 'tealDark', 'greenDark', 'redDark', 'yellowDark', 'ink', 'inkLighter'];
function Icon(_ref) {
var source = _ref.source,
color = _ref.color,
backdrop = _ref.backdrop,
accessibilityLabel = _ref.accessibilityLabel;
var intl = useI18n();
if (color && backdrop && COLORS_WITH_BACKDROPS.indexOf(color) < 0) {
// eslint-disable-next-line no-console
console.warn(intl.translate('Polaris.Icon.backdropWarning', {
color: color,
colorsWithBackDrops: COLORS_WITH_BACKDROPS.join(', ')
}));
}
var className = classNames(styles$1.Icon, color && styles$1[variationName('color', color)], color && color !== 'white' && styles$1.isColored, backdrop && styles$1.hasBackdrop);
var contentMarkup;
if (typeof source === 'function') {
var SourceComponent = source;
contentMarkup = React__default.createElement(SourceComponent, {
className: styles$1.Svg,
focusable: "false",
"aria-hidden": "true"
});
} else if (source === 'placeholder') {
contentMarkup = React__default.createElement("div", {
className: styles$1.Placeholder
});
} else {
contentMarkup = React__default.createElement("img", {
className: styles$1.Img,
src: "data:image/svg+xml;utf8,".concat(source),
alt: "",
"aria-hidden": "true"
});
}
return React__default.createElement("span", {
className: className,
"aria-label": accessibilityLabel
}, contentMarkup);
}
var styles$2 = {
"Spinner": "Polaris-Spinner",
"loading": "Polaris-Spinner--loading",
"sizeSmall": "Polaris-Spinner--sizeSmall",
"sizeLarge": "Polaris-Spinner--sizeLarge",
"colorWhite": "Polaris-Spinner--colorWhite",
"colorTeal": "Polaris-Spinner--colorTeal",
"colorInkLightest": "Polaris-Spinner--colorInkLightest"
};
var spinnerLarge = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDQgNDQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjU0MiAxLjQ4N0EyMS41MDcgMjEuNTA3IDAgMCAwIC41IDIyYzAgMTEuODc0IDkuNjI2IDIxLjUgMjEuNSAyMS41IDkuODQ3IDAgMTguMzY0LTYuNjc1IDIwLjgwOS0xNi4wNzJhMS41IDEuNSAwIDAgMC0yLjkwNC0uNzU2QzM3LjgwMyAzNC43NTUgMzAuNDczIDQwLjUgMjIgNDAuNSAxMS43ODMgNDAuNSAzLjUgMzIuMjE3IDMuNSAyMmMwLTguMTM3IDUuMy0xNS4yNDcgMTIuOTQyLTE3LjY1YTEuNSAxLjUgMCAxIDAtLjktMi44NjN6IiBmaWxsPSIjOTE5RUFCIi8+PC9zdmc+Cg==';
var spinnerSmall = 'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMjI5IDEuMTczYTkuMjUgOS4yNSAwIDEgMCAxMS42NTUgMTEuNDEyIDEuMjUgMS4yNSAwIDEgMC0yLjQtLjY5OCA2Ljc1IDYuNzUgMCAxIDEtOC41MDYtOC4zMjkgMS4yNSAxLjI1IDAgMSAwLS43NS0yLjM4NXoiIGZpbGw9IiM5MTlFQUIiLz48L3N2Zz4K';
var COLORS_FOR_LARGE_SPINNER = ['teal', 'inkLightest'];
function Spinner(_ref) {
var _ref$size = _ref.size,
size = _ref$size === void 0 ? 'large' : _ref$size,
_ref$color = _ref.color,
color = _ref$color === void 0 ? 'teal' : _ref$color,
accessibilityLabel = _ref.accessibilityLabel;
var intl = useI18n();
if (size === 'large' && COLORS_FOR_LARGE_SPINNER.indexOf(color) < 0) {
if (process.env.NODE_ENV === 'development') {
// eslint-disable-next-line no-console
console.warn(intl.translate('Polaris.Spinner.warningMessage', {
color: color,
size: size,
colors: COLORS_FOR_LARGE_SPINNER.join(', ')
}));
} // eslint-disable-next-line no-param-reassign
size = 'small';
}
var className = classNames(styles$2.Spinner, color && styles$2[variationName('color', color)], size && styles$2[variationName('size', size)]);
var spinnerSVG = size === 'large' ? spinnerLarge : spinnerSmall;
return React__default.createElement(Image, {
alt: "",
source: spinnerSVG,
className: className,
draggable: false,
role: "status",
"aria-label": accessibilityLabel
});
}
var styles$3 = {
"Button": "Polaris-Button",
"disabled": "Polaris-Button--disabled",
"Content": "Polaris-Button__Content",
"textAlignLeft": "Polaris-Button--textAlignLeft",
"textAlignCenter": "Polaris-Button--textAlignCenter",
"textAlignRight": "Polaris-Button--textAlignRight",
"Icon": "Polaris-Button__Icon",
"Spinner": "Polaris-Button__Spinner",
"primary": "Polaris-Button--primary",
"destructive": "Polaris-Button--destructive",
"outline": "Polaris-Button--outline",
"loading": "Polaris-Button--loading",
"plain": "Polaris-Button--plain",
"iconOnly": "Polaris-Button--iconOnly",
"fullWidth": "Polaris-Button--fullWidth",
"sizeSlim": "Polaris-Button--sizeSlim",
"sizeLarge": "Polaris-Button--sizeLarge",
"monochrome": "Polaris-Button--monochrome",
"Text": "Polaris-Button__Text"
};
var DEFAULT_SIZE = 'medium';
function Button(_ref) {
var id = _ref.id,
url = _ref.url,
disabled = _ref.disabled,
loading = _ref.loading,
children = _ref.children,
accessibilityLabel = _ref.accessibilityLabel,
ariaControls = _ref.ariaControls,
ariaExpanded = _ref.ariaExpanded,
ariaPressed = _ref.ariaPressed,
onClick = _ref.onClick,
onFocus = _ref.onFocus,
onBlur = _ref.onBlur,
onKeyDown = _ref.onKeyDown,
onKeyPress = _ref.onKeyPress,
onKeyUp = _ref.onKeyUp,
external = _ref.external,
download = _ref.download,
icon = _ref.icon,
primary = _ref.primary,
outline = _ref.outline,
destructive = _ref.destructive,
disclosure = _ref.disclosure,
plain = _ref.plain,
monochrome = _ref.monochrome,
submit = _ref.submit,
_ref$size = _ref.size,
size = _ref$size === void 0 ? DEFAULT_SIZE : _ref$size,
textAlign = _ref.textAlign,
fullWidth = _ref.fullWidth,
circle = _ref.circle,
width = _ref.width,
height = _ref.height;
var intl = useI18n();
var isDisabled = disabled || loading;
var className = classNames(styles$3.Button, primary && styles$3.primary, outline && styles$3.outline, destructive && styles$3.destructive, isDisabled && styles$3.disabled, loading && styles$3.loading, plain && styles$3.plain, monochrome && styles$3.monochrome, size && size !== DEFAULT_SIZE && styles$3[variationName('size', size)], textAlign && styles$3[variationName('textAlign', textAlign)], fullWidth && styles$3.fullWidth, icon && children == null && styles$3.iconOnly);
var disclosureIconMarkup = disclosure ? React__default.createElement(IconWrapper, null, React__default.createElement(Icon, {
source: loading ? 'placeholder' : polarisIcons.CaretDownMinor
})) : null;
var iconMarkup;
if (icon) {
var iconInner = isIconSource(icon) ? React__default.createElement(Icon, {
source: loading ? 'placeholder' : icon
}) : icon;
iconMarkup = React__default.createElement(IconWrapper, null, iconInner);
}
var childMarkup = children ? React__default.createElement("span", {
className: styles$3.Text
}, children) : null;
var spinnerColor = primary || destructive ? 'white' : 'inkLightest';
var spinnerSVGMarkup = loading ? React__default.createElement("span", {
className: styles$3.Spinner
}, React__default.createElement(Spinner, {
size: "small",
color: spinnerColor,
accessibilityLabel: intl.translate('Polaris.Button.spinnerAccessibilityLabel')
})) : null;
var content = iconMarkup || disclosureIconMarkup ? React__default.createElement("span", {
className: styles$3.Content
}, spinnerSVGMarkup, iconMarkup, childMarkup, disclosureIconMarkup) : React__default.createElement("span", {
className: styles$3.Content
}, spinnerSVGMarkup, childMarkup);
var type = submit ? 'submit' : 'button';
if (url) {
return isDisabled ? // Render an `<a>` so toggling disabled/enabled state changes only the
// `href` attribute instead of replacing the whole element.
// eslint-disable-next-line jsx-a11y/anchor-is-valid
React__default.createElement("a", {
id: id,
c