{"version":3,"sources":["webpack://wc-bookings-availability.[name]/webpack/bootstrap","webpack://wc-bookings-availability.[name]/external {\"this\":[\"wp\",\"element\"]}","webpack://wc-bookings-availability.[name]/./node_modules/prop-types/index.js","webpack://wc-bookings-availability.[name]/external {\"this\":[\"wp\",\"i18n\"]}","webpack://wc-bookings-availability.[name]/external \"moment\"","webpack://wc-bookings-availability.[name]/./assets/js/includes/date-utils.js","webpack://wc-bookings-availability.[name]/external {\"this\":[\"wp\",\"components\"]}","webpack://wc-bookings-availability.[name]/external \"lodash\"","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/list-alt.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/calendar-alt.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/checkbox-checked.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/checkbox-unchecked.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/radio-selected.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/radio-unselected.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/trending-flat.js","webpack://wc-bookings-availability.[name]/./assets/js/components/icons/keyboard-arrow-right.js","webpack://wc-bookings-availability.[name]/./assets/js/includes/misc-utils.js","webpack://wc-bookings-availability.[name]/external {\"this\":[\"wp\",\"apiFetch\"]}","webpack://wc-bookings-availability.[name]/./assets/js/blocks/common-context/context.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/extends.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/bookings-calendar/context/context.js","webpack://wc-bookings-availability.[name]/external {\"this\":[\"wp\",\"url\"]}","webpack://wc-bookings-availability.[name]/./assets/js/blocks/products-context/context.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/availability-context/context.js","webpack://wc-bookings-availability.[name]/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://wc-bookings-availability.[name]/./assets/js/components/event-table/container.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/bookings-schedule/context/context.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/availability-context/availability-state.js","webpack://wc-bookings-availability.[name]/./assets/js/components/event-item/index.js","webpack://wc-bookings-availability.[name]/./assets/js/components/event-item/empty.js","webpack://wc-bookings-availability.[name]/./assets/js/components/page-loader/index.js","webpack://wc-bookings-availability.[name]/./assets/js/components/event-table/index.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/createClass.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/inherits.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/common-context/common-state.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/products-context/products-state.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/bookings-schedule/style.scss?7aa1","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://wc-bookings-availability.[name]/external \"moment-timezone\"","webpack://wc-bookings-availability.[name]/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://wc-bookings-availability.[name]/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/typeof.js","webpack://wc-bookings-availability.[name]/./assets/js/components/page-loader/style.scss?1ef6","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://wc-bookings-availability.[name]/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/bookings-schedule/context/schedule-state.js","webpack://wc-bookings-availability.[name]/./assets/js/blocks/bookings-schedule/frontend.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","this","DATE_RANGES","TODAY","THIS_WEEK","THIS_MONTH","CUSTOM","CONVERT_DIRECTIONS","LOCAL_TO_SERVER","SERVER_TO_LOCAL","DATE_RANGE_TYPE_LABELS","__","DATE_RANGE_OPTIONS","label","DATE_RANGE_OPTIONS_CAL","DATE_QUERY_FORMAT","getDateLimits","dateRangeType","intervalOffset","currentDate","minDate","moment","startOf","toDate","maxDate","intervalDays","add","setDate","endOf","minDisplayDate","startOfWeek","parseInt","wc_bookings_availability_args","start_of_week","_minDate","day","startDayOffset","endDayOffset","getDate","addTimeIfToday","isSame","format","isCustom","getReadableDateRangeString","getTime","getDateRangeTypeString","getDateQueryLimits","formatDateQueryLimits","getDayOfWeek","getCalStartEndTime","today","Date","todayDay","isoWeekday","wpStartOfWeek","weekStart","subtract","weekEnd","calendarWeekStartEndTime","date","monthStart","startColumn","startTime","monthEnd","endColumn","endTime","currentMonth","calendarMonthStartEndTime","getHumanReadableDate","formatDuration","product","endDate","formattedDuration","durationPeriodSeparator","duration","durationUnit","startDate","startDateDay","startDateMonth","timeFormat","time_format_moment","getDisplayTimezone","endDateDay","endDateMonth","days","sprintf","_n","min_duration","duration_type","max_duration","months","startOfDuration","endOfDuration","getNoSlotsInRangeMessage","getErrorLoadingSlotsInRangeMessage","convertDate","convertDirection","offsetHours","referenceDate","timezone_conversion","referenceTime","clientOffset","utcOffset","tz","server_timezone","serverOffset","getClientServerTimezoneOffsetHours","localizedDate","localizeDate","guess","getIsRestrictedDay","has_restricted_days","restricted_days","day_of_week","undefined","arrayWithHoles","iterableToArrayLimit","nonIterableRest","arr","icon","xmlns","width","height","viewBox","fill","SCREEN","ALL_PRODUCTS","PRODUCTS_SCREEN","CATEGORIES_SCREEN","RESOURCES_SCREEN","screenOptions","DEFAULT_PAGE_SIZE","attributesDictionary","common","categoryIds","type","default","source","selector","attribute","currentScreen","productIds","resourceIds","showDateNav","calendar","showSoldOut","example","schedule","infiniteScrollEnabled","slotsPerPage","showEmptyDates","getAttributesDefFor","blockName","decodeAttributesFor","attributes","attributesDef","decodedAttributes","keys","createContext","_extends","assign","target","arguments","length","apply","obj","configurable","writable","arrayWithoutHoles","iterableToArray","nonIterableSpread","memo","isOldIE","Boolean","window","document","all","atob","getTarget","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","list","options","idCountMap","identifiers","item","id","base","count","concat","index","css","media","sourceMap","references","updater","push","addStyle","insertStyleElement","style","createElement","nonce","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","join","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","btoa","unescape","encodeURIComponent","JSON","stringify","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","toString","newLastIdentifiers","_i","_index","splice","self","ReferenceError","BookingContainer","props","useContext","commonContext","offset","gotoCurrent","gotoNext","gotoPrev","dateRangeString","dateRangeTypeString","className","href","onClick","preventDefault","propTypes","PropTypes","string","bool","getJsonString","query","sort","serializeQueryArgs","omit","AvailabilityState","useState","availability","setAvailability","availabilityRequesting","setAvailabilityRequesting","availabilityError","setAvailabilityError","getAvailability","data","records","pages","map","page","Provider","hasResultsForQuery","getAvailabilityCount","getRemainingRecordsCount","recordsCount","getAvailabilityTotalRecords","requestAvailability","getPastTimes","pageSize","queryArgs","product_ids","category_ids","resource_ids","min_date","max_date","limit","get_past_times","hide_unavailable","path","addQueryArgs","pickBy","identity","apiFetch","then","requestedAvailability","_query","queryKey","newPage","newAvailability","merge","has","storeAvailability","src","productId","product_id","duration_unit","serverDate","error","highestPageForQuery","Math","max","children","EventItem","available","loading","setLoading","isPreview","addSubheader","placeholder","availableData","priceHtml","price_html","isAvailable","listClassName","buttonText","has_persons","has_resources","buttonClassName","permalink","dangerouslySetInnerHTML","__html","isBookable","url","ajax_url","nonces","add_booking_to_cart","booked","location","checkout_url","link","disabled","shape","number","resources","title","isRequired","defaultProps","EmptyEventItem","PageLoader","loadMore","onScroll","scrollTriggerRef","createRef","addEventListener","prevProps","isLoading","removeEventListener","scrollTriggerIsInViewport","scrollTrigger","current","top","getBoundingClientRect","innerHeight","remainingRecords","ref","loadMoreClick","Component","func","EventTable","setPage","firstRender","useRef","pageLoader","productContext","requestProducts","getProducts","products","productsRequesting","productsError","availabilityContext","scheduleContext","calendarContext","resetOffset","forceDateFromProps","previousProps","useEffect","usePreviousProps","productsQuery","forcedDate","dateRange","availabilityQuery","isError","isRequesting","hasResults","isLastPage","useLayoutEffect","loadMoreSlots","previousDate","shownAvailability","placeholderAvailability","slice","eventItems","placeHolderCount","min","placeHolderProduct","cost","momentPreviousDate","addSubHeader","isBefore","renderEvents","node","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","instance","Constructor","TypeError","_defineProperties","descriptor","protoProps","staticProps","subClass","superClass","constructor","_typeof","assertThisInitialized","CommonState","newProps","isFrontend","setOffset","onShowDateNavUpdate","setAttributes","onShowEmptyDatesUpdate","ProductsState","setProducts","setProductsRequesting","setProductsError","include","per_page","_locale","_products","productsObj","reduce","transformProductsListToObject","api","content","locals","Array","isArray","_arr","_d","_e","_s","iterator","next","done","err","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","array","bigint","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","_setPrototypeOf","_typeof2","arr2","iter","from","ScheduleState","onTimeRangeUpdate","getElementsByClassName","bookingsContainerHTML","dataset","render"],"mappings":"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","file":"js/bookings-schedule-frontend.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 85);\n","(function() { module.exports = this[\"wp\"][\"element\"]; }());","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","(function() { module.exports = this[\"wp\"][\"i18n\"]; }());","(function() { module.exports = this[\"moment\"]; }());","/**\n * Date constants and utility functions.\n *\n * @author WooCommerce\n * @since 1.0.0\n */\n\n/**\n * External dependencies\n */\nimport moment from 'moment';\nimport 'moment-timezone';\nimport { sprintf, __, _n } from '@wordpress/i18n';\n\n/**\n * Options for what range of dates to display on event list.\n *\n * @since 1.0.0\n */\nexport const DATE_RANGES = {\n\tTODAY: 'today',\n\tTHIS_WEEK: 'this-week',\n\tTHIS_MONTH: 'this-month',\n\tCUSTOM: 'custom',\n};\n\n/**\n * Convert directions\n *\n * @since 1.0.0\n */\nexport const CONVERT_DIRECTIONS = {\n\tLOCAL_TO_SERVER: 'LOCAL_TO_SERVER',\n\tSERVER_TO_LOCAL: 'SERVER_TO_LOCAL',\n};\n\n/**\n * Date range labels.\n *\n * @since 1.0.0\n */\nexport const DATE_RANGE_TYPE_LABELS = {\n\tTODAY: __( 'Today', 'woocommerce-bookings-availability' ),\n\tTHIS_WEEK: __( 'This week', 'woocommerce-bookings-availability' ),\n\tTHIS_MONTH: __( 'This month', 'woocommerce-bookings-availability' ),\n};\n\n/**\n * Option labels for each date range type.\n *\n * @since 1.0.0\n */\nexport const DATE_RANGE_OPTIONS = [\n\t{ value: DATE_RANGES.TODAY, label: DATE_RANGE_TYPE_LABELS.TODAY },\n\t{ value: DATE_RANGES.THIS_WEEK, label: DATE_RANGE_TYPE_LABELS.THIS_WEEK },\n\t{ value: DATE_RANGES.THIS_MONTH, label: DATE_RANGE_TYPE_LABELS.THIS_MONTH },\n];\n\n/**\n * Option labels for each date range type for calendar.\n *\n * @since 1.0.0\n */\nexport const DATE_RANGE_OPTIONS_CAL = [\n\t{ value: DATE_RANGES.THIS_WEEK, label: DATE_RANGE_TYPE_LABELS.THIS_WEEK },\n\t{ value: DATE_RANGES.THIS_MONTH, label: DATE_RANGE_TYPE_LABELS.THIS_MONTH },\n];\n\n/**\n * String format for date query.\n */\nexport const DATE_QUERY_FORMAT = 'YYYY-MM-DD[T]HH:mm:ss';\n\n/**\n * Find the date min and max for a given date range type.\n *\n * Calculates the date min/max relative to the current day when necessary.\n * For week range, will start from the startOfWeek day and calculate onwards.\n *\n * @since 1.0.0\n *\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n * @param {int} [intervalOffset] Optional offset for the date range.\n * @param {int} currentDate \t\tValue to denote if there is a current date to use.\n *\n * @return {Object} minDate and maxDate Date objects\n */\nexport function getDateLimits( dateRangeType, intervalOffset = 0, currentDate = 1 ) {\n\tlet minDate = moment().startOf( 'day' ).toDate();\n\tlet maxDate = moment().startOf( 'day' ).toDate();\n\tlet intervalDays = 1;\n\n\tif ( DATE_RANGES.THIS_MONTH === dateRangeType ) {\n\t\tminDate = moment( minDate ).add( intervalOffset, 'months' ).toDate();\n\t\tminDate.setDate( currentDate );\n\t\tmaxDate = moment( minDate ).endOf( 'month' ).toDate();\n\t}\n\n\tlet minDisplayDate = minDate;\n\n\tif ( DATE_RANGES.THIS_WEEK === dateRangeType ) {\n\t\tintervalDays = 7;\n\t\tconst startOfWeek = parseInt( wc_bookings_availability_args.start_of_week, 10 );\n\t\tconst _minDate = moment().day( ( intervalDays * intervalOffset ) + startOfWeek ).startOf( 'day' );\n\t\tif ( minDate < _minDate ) {\n\t\t\tminDate = _minDate.toDate();\n\t\t}\n\t\tmaxDate = moment( minDate ).endOf( 'week' ).toDate();\n\t\tminDisplayDate = moment( minDate ).startOf( 'week' ).toDate();\n\t}\n\n\tif ( DATE_RANGES.TODAY === dateRangeType ) {\n\t\tconst startDayOffset = intervalDays * intervalOffset;\n\t\tconst endDayOffset = ( intervalDays * ( intervalOffset + 1 ) ) - 1;\n\t\tminDate.setDate( minDate.getDate() + startDayOffset );\n\t\tmaxDate.setDate( maxDate.getDate() + endDayOffset );\n\t}\n\n\treturn {\n\t\tminDisplayDate,\n\t\tminDate,\n\t\tmaxDate,\n\t};\n}\n\n/**\n * Add time if the date is today.\n *\n * The date can then be used to provide more detailed availability when calling the API.\n *\n * @since import moment from 'moment';\n *\n * @param {Date} minDate Date.\n *\n * @return {Date} minDate with current time if it is today.\n */\nexport function addTimeIfToday( minDate ) {\n\tif ( minDate && moment( minDate ).isSame( moment(), 'day' ) ) {\n\t\treturn moment().format( DATE_QUERY_FORMAT );\n\t}\n\n\treturn minDate;\n}\n\n/**\n * Check if date is a custom type or not.\n *\n * @since 1.0.0\n *\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n *\n * @return {boolean} True if using a custom date range.\n */\nexport function isCustom( dateRangeType ) {\n\treturn DATE_RANGES.CUSTOM === dateRangeType;\n}\n\n/**\n * Get date range as a human readable string.\n *\n * @since 1.0.0\n *\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n * @param {int} [intervalOffset] Optional offset for the date range.\n *\n * @return {String} Human readable string representing the date range.\n */\nexport function getReadableDateRangeString( dateRangeType, intervalOffset = 0 ) {\n\tconst { minDisplayDate, minDate, maxDate } = getDateLimits( dateRangeType, intervalOffset );\n\n\tif ( DATE_RANGES.THIS_MONTH === dateRangeType ) {\n\t\treturn moment( minDate ).format( 'MMMM YYYY' );\n\t}\n\n\tif ( minDate.getTime() === maxDate.getTime() ) {\n\t\treturn moment( minDate ).format( 'MMM DD, YYYY' );\n\t}\n\n\treturn moment( minDisplayDate ).format( 'MMM DD - ' ) + moment( maxDate ).format( 'MMM DD, YYYY' );\n}\n\n/**\n * Get date range type as header navigation title.\n *\n * @since 1.0.0\n *\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n *\n * @return {String} Human readable string representing the date range type.\n */\nexport function getDateRangeTypeString( dateRangeType ) {\n\tswitch ( dateRangeType ) {\n\t\tcase DATE_RANGES.TODAY:\n\t\t\treturn DATE_RANGE_TYPE_LABELS.TODAY;\n\t\tcase DATE_RANGES.THIS_MONTH:\n\t\t\treturn DATE_RANGE_TYPE_LABELS.THIS_MONTH;\n\t\tcase DATE_RANGES.THIS_WEEK:\n\t\tdefault:\n\t\t\treturn DATE_RANGE_TYPE_LABELS.THIS_WEEK;\n\t}\n}\n\n/**\n * Get date range as a min/max in 'YYYY-MM-DD' format.\n *\n * @since 1.0.0\n *\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n * @param {int} [intervalOffset] Optional offset for the date range.\n * @param {int} [currentDate] Optional current date.\n *\n * @return {Object} minDate and maxDate in 'YYYY-MM-DD' format.\n */\nexport function getDateQueryLimits( dateRangeType, intervalOffset = 0, currentDate = 1 ) {\n\tconst { minDate, maxDate } = getDateLimits( dateRangeType, intervalOffset, currentDate );\n\n\treturn formatDateQueryLimits( minDate, maxDate );\n}\n\n/**\n * Format dates according to date query format.\n *\n * @param {object} minDate Min date\n * @param {object} maxDate Max date\n *\n * @return {Object} minDate and maxDate in DATE_QUERY_FORMAT format.\n */\nexport function formatDateQueryLimits( minDate, maxDate ) {\n\treturn {\n\t\tminDate: moment( minDate ).format( DATE_QUERY_FORMAT ),\n\t\tmaxDate: moment( maxDate ).endOf( 'day' ).format( DATE_QUERY_FORMAT ),\n\t};\n}\n\n/**\n * Gets the day of the week.\n *\n * @since 1.0.0\n *\n * @param {int} day The selected start of week.\n *\n * @return {string} The processed day.\n */\nexport function getDayOfWeek( day ) {\n\treturn moment().day( day ).format( 'ddd' );\n}\n\n/**\n * Gets the calendar month view start time.\n *\n * @since 1.0.0\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n * @param {int} intervalOffset Optional offset for the date range.\n * @return {object} { minDate, maxDate }.\n */\nexport function getCalStartEndTime( dateRangeType, intervalOffset ) {\n\tswitch ( dateRangeType ) {\n\t\tcase DATE_RANGES.THIS_WEEK:\n\t\t\treturn calendarWeekStartEndTime( intervalOffset );\n\n\t\tcase DATE_RANGES.THIS_MONTH:\n\t\tdefault:\n\t\t\treturn calendarMonthStartEndTime( intervalOffset );\n\t}\n}\n\nfunction calendarWeekStartEndTime( intervalOffset ) {\n\tconst today = moment( new Date() ).add( intervalOffset * 7, 'day' );\n\tconst todayDay = today.isoWeekday();\n\n\tconst wpStartOfWeek = parseInt( wc_bookings_availability_args.start_of_week, 10 );\n\t// Change WP format to ISO. ISO 1..7, 1=Monday vs. WordPress 0..7, 0=Sunday.\n\tconst startOfWeek = wpStartOfWeek === 0 ? 7 : wpStartOfWeek;\n\n\tlet weekStart = null;\n\tif ( todayDay > startOfWeek ) {\n\t\tweekStart = moment( today ).subtract( todayDay - startOfWeek, 'day' );\n\t} else if ( todayDay < startOfWeek ) {\n\t\tweekStart = moment( today ).subtract( 7 - ( startOfWeek - todayDay ), 'day' );\n\t} else {\n\t\tweekStart = today;\n\t}\n\n\tconst weekEnd = moment( weekStart ).add( 6, 'day' );\n\n\treturn {\n\t\tminDate: weekStart.startOf( 'day' ),\n\t\tmaxDate: weekEnd.endOf( 'day' ),\n\t};\n}\n\nfunction calendarMonthStartEndTime( intervalOffset ) {\n\tconst date = moment( new Date() ).add( intervalOffset, 'month' );\n\n\tconst wpStartOfWeek = parseInt( wc_bookings_availability_args.start_of_week, 10 );\n\t// Change WP format to ISO. ISO 1..7, 1=Monday vs. WordPress 0..7, 0=Sunday.\n\tconst startOfWeek = wpStartOfWeek === 0 ? 7 : wpStartOfWeek;\n\tconst monthStart = date.startOf( 'month' );\n\tconst monthStartOfWeekDay = monthStart.isoWeekday();\n\t/*\n\t * Calculate column where the month start will be placed.\n\t * This calculates true modulo ( never negative ).\n\t */\n\tconst startColumn = ( 7 + ( ( monthStartOfWeekDay - startOfWeek ) % 7 ) ) % 7;\n\t/*\n\t * Calculate start time: how many days from the previous month we need to include,\n\t * in order to have calendar without empty days in the first row.\n\t */\n\tconst startTime = moment( monthStart ).subtract( startColumn, 'day' );\n\n\tconst monthEnd = date.endOf( 'month' );\n\tconst monthEndOfWeekDay = monthEnd.isoWeekday();\n\tconst endColumn = ( 7 + ( ( monthEndOfWeekDay - startOfWeek ) % 7 ) ) % 7;\n\t/*\n\t * Calculate end date: how many days from the next month we need to include.\n\t * We want to have calendar without empty days in the last row.\n\t */\n\tconst endTime = moment( monthEnd ).add( 6 - endColumn, 'day' );\n\n\treturn {\n\t\tminDate: startTime.startOf( 'day' ),\n\t\tmaxDate: endTime.endOf( 'day' ),\n\t\tcurrentMonth: date,\n\t};\n}\n\n/*\n * Get date as humanreadable string.\n *\n * @since 1.0.0\n *\n * @param {string} date String value for a date.\n *\n * @return {string} date in 'dddd, MMMM DD' format.\n */\nexport function getHumanReadableDate( date ) {\n\tconst dateFormat = 'dddd, MMMM DD';\n\n\treturn moment( date ).format( dateFormat );\n}\n\n/**\n * Formats a time duration.\n *\n * @since 1.0.0\n *\n * @param {object} product Product information.\n * @param {timestamp} date Date the duration starts from.\n *\n * @return {string} The formatted duration.\n */\nexport function formatDuration( product, date ) {\n\tconst { duration, durationUnit } = product;\n\tconst startDate = moment( date );\n\tconst startDateDay = startDate.format( 'Do' );\n\tconst startDateMonth = startDate.format( 'MMMM' );\n\tconst timeFormat = wc_bookings_availability_args.time_format_moment;\n\tlet endDate;\n\n\tlet formattedDuration, durationPeriodSeparator;\n\tswitch ( durationUnit ) {\n\t\tcase 'minute':\n\t\t\tendDate = moment( date ).add( duration, durationUnit );\n\t\t\tformattedDuration = `${ startDate.format( timeFormat ) }-${ endDate.format( timeFormat ) } (${ getDisplayTimezone( date ) })`;\n\t\t\tbreak;\n\t\tcase 'hour':\n\t\t\tendDate = moment( date ).add( duration, durationUnit );\n\t\t\tdurationPeriodSeparator = __( ' to ', 'woocommerce-bookings-availability' );\n\t\t\tformattedDuration = `${ startDate.format( timeFormat ) } ${ durationPeriodSeparator } ${ endDate.format( timeFormat ) } (${ getDisplayTimezone( date ) })`;\n\t\t\tbreak;\n\t\t// 'night' is just a synonym of the 'day' duration for accommodation bookings.\n\t\tcase 'night':\n\t\tcase 'day':\n\t\t\tendDate = moment( date ).add( duration - 1, durationUnit );\n\t\t\tlet endDateDay = endDate.format( 'Do' );\n\t\t\tlet endDateMonth = endDate.format( 'MMMM' );\n\n\t\t\t// Assume it's of fixed duration\n\t\t\tlet days = sprintf( _n( `%d ${ durationUnit }`, `%d ${ durationUnit }s`, duration * product.min_duration, 'woocommerce-bookings-availability' ), duration * product.min_duration );\n\t\t\tif ( 'customer' === product.duration_type && product.min_duration !== product.max_duration ) {\n\t\t\t\tdays = sprintf( __( `%d-%d ${ durationUnit }s`, 'woocommerce-bookings-availability' ), duration * product.min_duration, duration * product.max_duration );\n\t\t\t\tformattedDuration = `${ days }`;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif ( startDateMonth !== endDateMonth ) {\n\t\t\t\tendDateMonth = `${ endDateMonth } `;\n\t\t\t} else {\n\t\t\t\tendDateMonth = '';\n\t\t\t}\n\n\t\t\tdurationPeriodSeparator = '';\n\t\t\tswitch ( duration ) {\n\t\t\t\tcase 1:\n\t\t\t\t\tdurationPeriodSeparator = endDateMonth = endDateDay = '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tdurationPeriodSeparator = __( ' and ', 'woocommerce-bookings-availability' );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tdurationPeriodSeparator = ' - ';\n\t\t\t}\n\n\t\t\tformattedDuration = `${ days }, ${ startDateMonth } ${ startDateDay } ${ durationPeriodSeparator } ${ endDateMonth }${ endDateDay } `;\n\t\t\tbreak;\n\n\t\tcase 'month':\n\t\t\tendDate = moment( date ).add( duration, durationUnit );\n\t\t\t/* translators: %d number of month. */\n\t\t\tconst months = sprintf( _n( '%d month', '%d months', duration, 'woocommerce-bookings-availability' ), duration );\n\t\t\tconst startOfDuration = startDate.startOf( 'month' );\n\t\t\tconst endOfDuration = endDate.endOf( 'month' );\n\t\t\tif ( 1 === duration ) {\n\t\t\t\tformattedDuration = `${ months }, ${ startOfDuration.format( 'MMMM D' ) } - ${ endOfDuration.format( 'D' ) }`;\n\t\t\t} else {\n\t\t\t\tformattedDuration = `${ months }, ${ startOfDuration.format( 'MMMM D' ) } - ${ endOfDuration.format( 'MMMM D' ) }`;\n\t\t\t}\n\t}\n\n\treturn formattedDuration;\n}\n\n/**\n * Return friendly string indicating no slots exist for range type.\n *\n * @since 1.0.0\n *\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n *\n * @return {string} String indicating no slots are available in the range.\n */\nexport function getNoSlotsInRangeMessage( dateRangeType ) {\n\tswitch ( dateRangeType ) {\n\t\tcase DATE_RANGES.THIS_WEEK:\n\t\t\treturn __( 'No available times this week.', 'woocommerce-bookings-availability' );\n\t\tcase DATE_RANGES.THIS_MONTH:\n\t\t\treturn __( 'No available times this month.', 'woocommerce-bookings-availability' );\n\t\tcase DATE_RANGES.TODAY:\n\t\tdefault:\n\t\t\treturn __( 'No available times this day.', 'woocommerce-bookings-availability' );\n\t}\n}\n\n/**\n * Return friendly string indicating an error occurred for range type.\n *\n * @since 1.0.0\n *\n * @param {string} dateRangeType String value for a date range (from DATE_RANGE array).\n *\n * @return {string} String indicating an error occurred loading slots in the range.\n */\nexport function getErrorLoadingSlotsInRangeMessage( dateRangeType ) {\n\tswitch ( dateRangeType ) {\n\t\tcase DATE_RANGES.THIS_WEEK:\n\t\t\treturn __( 'We weren\\'t able to load times for this week.', 'woocommerce-bookings-availability' );\n\t\tcase DATE_RANGES.THIS_MONTH:\n\t\t\treturn __( 'We weren\\'t able to load times for this month.', 'woocommerce-bookings-availability' );\n\t\tcase DATE_RANGES.TODAY:\n\t\tdefault:\n\t\t\treturn __( 'We weren\\'t able to load times for this day.', 'woocommerce-bookings-availability' );\n\t}\n}\n\n/**\n * Convert client/server dates.\n *\n * @param {date} date Date to convert.\n * @param {string} convertDirection Direction of conversion (from CONVERT_DIRECTIONS array).\n *\n * @return {object} The converted date object.\n */\nexport function convertDate( date, convertDirection ) {\n\tconst offsetHours = getClientServerTimezoneOffsetHours( date );\n\tconst localizedDate = moment.tz( date, DATE_QUERY_FORMAT, wc_bookings_availability_args.server_timezone );\n\n\tswitch ( convertDirection ) {\n\t\tcase CONVERT_DIRECTIONS.SERVER_TO_LOCAL:\n\t\t\tlocalizedDate.add( offsetHours, 'hours' );\n\t\t\tbreak;\n\t\tcase CONVERT_DIRECTIONS.LOCAL_TO_SERVER:\n\t\t\tlocalizedDate.subtract( offsetHours, 'hours' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Invalid convertDirection option.';\n\t}\n\n\treturn localizedDate;\n}\n\n/**\n * Localize client/server date based on Bookings timezone settings.\n *\n * @param {date} date Date to convert.\n * @param {string} convertDirection Direction of conversion (from CONVERT_DIRECTIONS array).\n *\n * @return {string} The converted date in 'YYYY-MM_DDTHH:mm:ss' format.\n */\nexport function localizeDate( date, convertDirection ) {\n\tif ( ! wc_bookings_availability_args.timezone_conversion ) {\n\t\treturn date;\n\t}\n\n\tconst convertedDate = convertDate( date, convertDirection );\n\treturn convertedDate.format( DATE_QUERY_FORMAT );\n}\n\n/**\n * Returns the hour offset between the client and the server based on Bookings timezone settings.\n *\n * @param {string} referenceDate date string in DATE_QUERY_FORMAT to use as time to calculate the timezone difference at.\n *\n * @return {number} Number of hours between server and client.\n */\nfunction getClientServerTimezoneOffsetHours( referenceDate ) {\n\tif ( ! wc_bookings_availability_args.timezone_conversion ) {\n\t\treturn 0;\n\t}\n\n\tconst referenceTime = moment( referenceDate, DATE_QUERY_FORMAT );\n\tconst clientOffset = referenceTime.utcOffset();\n\treferenceTime.tz( wc_bookings_availability_args.server_timezone );\n\tconst serverOffset = referenceTime.utcOffset();\n\n\treturn ( clientOffset - serverOffset ) / 60.0;\n}\n\n/**\n * Returns the current timezone abbreviation based on Bookings\n * settings and the client timezone.\n *\n * @param {string} referenceDate date string in DATE_QUERY_FORMAT to use as time to calculate the timezone at.\n *\n * @return {string} Timezone abbreviation string.\n */\nexport function getDisplayTimezone( referenceDate ) {\n\tif ( ! wc_bookings_availability_args.timezone_conversion ) {\n\t\t// Use server's timezone.\n\t\treturn moment.tz( referenceDate, DATE_QUERY_FORMAT, wc_bookings_availability_args.server_timezone ).format( 'z' );\n\t}\n\t// Guess client's timezone.\n\treturn moment.tz( referenceDate, DATE_QUERY_FORMAT, moment.tz.guess() ).format( 'z' );\n}\n\n/**\n * Checks if a specific date is restricted.\n *\n * @since 1.1.7\n *\n * @param {timestamp} date Date the duration starts from.\n * @param {object} product Product information.\n *\n * @return {boolean} Is restricted or not.\n */\nexport function getIsRestrictedDay( date, product ) {\n\tif ( ! product.has_restricted_days || ! product.restricted_days ) {\n\t\treturn false;\n\t}\n\n\t// Days included in the list are available as start days.\n\tconst day_of_week = moment( date ).day();\n\tif ( undefined === product.restricted_days[ day_of_week ] ) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n","(function() { module.exports = this[\"wp\"][\"components\"]; }());","(function() { module.exports = this[\"lodash\"]; }());","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies\n */\nimport { Icon } from '@wordpress/components';\n\nexport default () => (\n\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t/>\n);\n","/**\n * External dependencies.\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { DATE_RANGES } from './date-utils';\n\nexport const SCREEN = {\n\tALL_PRODUCTS: 'all-products',\n\tPRODUCTS_SCREEN: 'products-screen',\n\tCATEGORIES_SCREEN: 'categories-screen',\n\tRESOURCES_SCREEN: 'resources-screen',\n};\n\nexport const screenOptions = [\n\t{ value: SCREEN.ALL_PRODUCTS, label: __( 'All bookable products', 'woocommerce-bookings-availability' ) },\n\t{ value: SCREEN.PRODUCTS_SCREEN, label: __( 'Specific bookable products', 'woocommerce-bookings-availability' ) },\n\t{ value: SCREEN.CATEGORIES_SCREEN, label: __( 'Specific categories', 'woocommerce-bookings-availability' ) },\n\t{ value: SCREEN.RESOURCES_SCREEN, label: __( 'Specific resources', 'woocommerce-bookings-availability' ) },\n];\n\nexport const DEFAULT_PAGE_SIZE = 8;\n\n/*\n * Global list of all attributes for both blocks.\n * Attributes are organized into 'common', 'calendar',\n * and 'schedule' props. 'common' attributes\n * apply to both blocks while 'calendar' and 'schedule'\n * apply to the specific block types only.\n *\n */\nconst attributesDictionary = {\n\tcommon: {\n\t\tcategoryIds: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tsource: 'attribute',\n\t\t\tselector: '.wc-bookings-availability-main-container',\n\t\t\tattribute: 'data-category-ids',\n\t\t},\n\t\tcurrentScreen: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t},\n\t\tproductIds: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tsource: 'attribute',\n\t\t\tselector: '.wc-bookings-availability-main-container',\n\t\t\tattribute: 'data-product-ids',\n\t\t},\n\t\tresourceIds: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tsource: 'attribute',\n\t\t\tselector: '.wc-bookings-availability-main-container',\n\t\t\tattribute: 'data-resource-ids',\n\t\t},\n\t\tshowDateNav: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tattribute: 'data-show-date-nav',\n\t\t},\n\t},\n\tcalendar: {\n\t\tdateRangeType: {\n\t\t\ttype: 'string',\n\t\t\tdefault: DATE_RANGES.THIS_MONTH,\n\t\t\tattribute: 'data-date-range-type',\n\t\t},\n\t\tshowSoldOut: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tattribute: 'data-show-sold-out',\n\t\t},\n\t\texample: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tschedule: {\n\t\tdateRangeType: {\n\t\t\ttype: 'string',\n\t\t\tdefault: DATE_RANGES.TODAY,\n\t\t\tattribute: 'data-date-range-type',\n\t\t},\n\t\tinfiniteScrollEnabled: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tattribute: 'data-infinite-scroll-enabled',\n\t\t},\n\t\tmaxDate: {\n\t\t\ttype: 'date',\n\t\t\tdefault: null,\n\t\t\tsource: 'attribute',\n\t\t\tselector: '.wc-bookings-availability-container',\n\t\t\tattribute: 'data-max-date',\n\t\t},\n\t\tminDate: {\n\t\t\ttype: 'date',\n\t\t\tdefault: null,\n\t\t\tsource: 'attribute',\n\t\t\tselector: '.wc-bookings-availability-container',\n\t\t\tattribute: 'data-min-date',\n\t\t},\n\t\tslotsPerPage: {\n\t\t\ttype: 'number',\n\t\t\tdefault: DEFAULT_PAGE_SIZE,\n\t\t\tattribute: 'data-slots-per-page',\n\t\t},\n\t\tshowEmptyDates: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t\tattribute: 'data-show-empty-dates',\n\t\t},\n\t},\n};\n\n/**\n * Get attribute definitions for the given block type name.\n *\n * @param {string} blockName Name of block to retrieve from (e.g. 'calendar' or 'schedule')\n *\n * @return {object} Attribute defintions for block.\n */\nexport function getAttributesDefFor( blockName ) {\n\t// Merge common attributes with the specific block attributes.\n\treturn { ...attributesDictionary.common, ...attributesDictionary[ blockName ] };\n}\n\n/**\n * Decode fontend data attributes for block props\n *\n * @param {string} blockName Name of block to retrieve from (e.g. 'calendar' or 'schedule')\n * @param {object} attributes Object data properties pulled directly from DOM.\n *\n * @return {string} Decoded attributes.\n */\nexport function decodeAttributesFor( blockName, attributes ) {\n\tconst attributesDef = getAttributesDefFor( blockName );\n\tconst decodedAttributes = {};\n\tfor ( const key of Object.keys( attributesDef ) ) {\n\t\tconst type = attributesDef[ key ].type;\n\t\t// Fill in missing values with defaults\n\t\tconst value = attributes.hasOwnProperty( key ) ? attributes[ key ] : attributesDef[ key ].default;\n\n\t\tswitch ( type ) {\n\t\t\tcase 'boolean':\n\t\t\t\tdecodedAttributes[ key ] = ( 'true' === value || true === value ) ? true : false;\n\t\t\t\tbreak;\n\t\t\tcase 'number':\n\t\t\t\tdecodedAttributes[ key ] = parseInt( value );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tdecodedAttributes[ key ] = value;\n\t\t}\n\t}\n\treturn decodedAttributes;\n}\n","(function() { module.exports = this[\"wp\"][\"apiFetch\"]; }());","/**\n * External dependencies.\n */\nimport { createContext } from '@wordpress/element';\n\nexport default createContext( {} );\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","/**\n * External dependencies.\n */\nimport { createContext } from '@wordpress/element';\n\nexport default createContext( {} );\n","(function() { module.exports = this[\"wp\"][\"url\"]; }());","/**\n * External dependencies.\n */\nimport { createContext } from '@wordpress/element';\n\nexport default createContext( {} );\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","/**\n * External dependencies.\n */\nimport { createContext } from '@wordpress/element';\n\nexport default createContext( {} );\n","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of