{"version":3,"sources":["webpack://Library/webpack/universalModuleDefinition","webpack://Library/./node_modules/text-clipper/dist/index.js","webpack://Library/./calendar/classes/calendar-actions.ts","webpack://Library/./calendar/classes/calendar-settings.ts","webpack://Library/./calendar/classes/calendar-text.ts","webpack://Library/./calendar/classes/calendar.ts","webpack://Library/./calendar/classes/lazy-load.ts","webpack://Library/./calendar/classes/promo-code.ts","webpack://Library/./calendar/common/calendar-api.ts","webpack://Library/./calendar/common/calendar.ts","webpack://Library/./calendar/components/app.tsx","webpack://Library/./calendar/components/calendar-container.tsx","webpack://Library/./calendar/components/calendar-view-toggle.tsx","webpack://Library/./calendar/components/filters/clear-all.tsx","webpack://Library/./calendar/components/filters/container.tsx","webpack://Library/./calendar/components/filters/filter.tsx","webpack://Library/./calendar/components/grid/container.tsx","webpack://Library/./calendar/components/grid/day.tsx","webpack://Library/./calendar/components/grid/event.tsx","webpack://Library/./calendar/components/grid/month.tsx","webpack://Library/./calendar/components/grid/months.tsx","webpack://Library/./calendar/components/lazy-image.tsx","webpack://Library/./calendar/components/list/container.tsx","webpack://Library/./calendar/components/list/day.tsx","webpack://Library/./calendar/components/list/event.tsx","webpack://Library/./calendar/components/list/month.tsx","webpack://Library/./calendar/components/list/months.tsx","webpack://Library/./calendar/components/loader.tsx","webpack://Library/./calendar/components/month-selection/dropdown.tsx","webpack://Library/./calendar/components/month-selection/load-more.tsx","webpack://Library/./calendar/components/navigation/scroll-to-top.tsx","webpack://Library/./calendar/components/promo-code.tsx","webpack://Library/./calendar/components/responsive/desktop.tsx","webpack://Library/./calendar/components/responsive/index.tsx","webpack://Library/./calendar/components/responsive/mobile.tsx","webpack://Library/./calendar/custom/classes/calendar-text.ts","webpack://Library/./calendar/helpers/filter-by-query.ts","webpack://Library/./calendar/helpers/scroll-to-month.ts","webpack://Library/./calendar/index.tsx","webpack://Library/./calendar/redux-state/actions/calendar-api.actions.ts","webpack://Library/./calendar/redux-state/actions/calendar-settings.actions.ts","webpack://Library/./calendar/redux-state/actions/calendar-text.actions.ts","webpack://Library/./calendar/redux-state/actions/calendar.actions.ts","webpack://Library/./calendar/redux-state/actions/lazy-load.actions.ts","webpack://Library/./calendar/redux-state/actions/promo-code.actions.ts","webpack://Library/./calendar/redux-state/index.ts","webpack://Library/./calendar/redux-state/reducers/calendar-settings.reducer.ts","webpack://Library/./calendar/redux-state/reducers/calendar-text.reducer.ts","webpack://Library/./calendar/redux-state/reducers/calendar.reducer.ts","webpack://Library/./calendar/redux-state/reducers/lazy-load.reducer.ts","webpack://Library/./calendar/redux-state/reducers/promo-code.reducer.ts","webpack://Library/./calendar/views/library/app.view.tsx","webpack://Library/./calendar/views/library/calendar-container.view.tsx","webpack://Library/./calendar/views/library/calendar-view-toggle.view.tsx","webpack://Library/./calendar/views/library/filter-clear-all.view.tsx","webpack://Library/./calendar/views/library/filter.view.tsx","webpack://Library/./calendar/views/library/filters-container.view.tsx","webpack://Library/./calendar/views/library/grid-day.view.tsx","webpack://Library/./calendar/views/library/grid-event.view.tsx","webpack://Library/./calendar/views/library/grid-month-container.view.tsx","webpack://Library/./calendar/views/library/grid-month.view.tsx","webpack://Library/./calendar/views/library/grid-months.view.tsx","webpack://Library/./calendar/views/library/list-container.view.tsx","webpack://Library/./calendar/views/library/list-day.view.tsx","webpack://Library/./calendar/views/library/list-event.view.tsx","webpack://Library/./calendar/views/library/list-month.view.tsx","webpack://Library/./calendar/views/library/list-months.view.tsx","webpack://Library/./calendar/views/library/loader.view.tsx","webpack://Library/./calendar/views/library/month-selection-dropdown.view.tsx","webpack://Library/./calendar/views/library/month-selection-load-more.view.tsx","webpack://Library/./calendar/views/library/promo-code.view.tsx","webpack://Library/./calendar/views/library/scroll-to-top.tsx","webpack://Library/external \"_\"","webpack://Library/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\",\"umd\":\"react\"}","webpack://Library/external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\",\"umd\":\"react-dom\"}","webpack://Library/webpack/bootstrap","webpack://Library/webpack/runtime/chunk loaded","webpack://Library/webpack/runtime/compat get default export","webpack://Library/webpack/runtime/define property getters","webpack://Library/webpack/runtime/global","webpack://Library/webpack/runtime/harmony module decorator","webpack://Library/webpack/runtime/hasOwnProperty shorthand","webpack://Library/webpack/runtime/make namespace object","webpack://Library/webpack/runtime/node module decorator","webpack://Library/webpack/runtime/jsonp chunk loading","webpack://Library/webpack/startup"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;;ACVa;AACb,8CAA6C,CAAC,cAAc,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B,gCAAgC;AAChC,6BAA6B;AAC7B,gCAAgC;AAChC,iCAAiC;AACjC,6BAA6B,MAAM;AACnC,4BAA4B;AAC5B,8BAA8B;AAC9B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC,8BAA8B,oCAAoC;AAClE,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,mCAAmC,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC/kBA;;GAEG;AACH;IAAA;IAuGA,CAAC;IAtGG,sBAAW,uBAAS;aAApB;YACI,OAAO,WAAW,CAAC;QACvB,CAAC;;;OAAA;IACD,sBAAW,2BAAa;aAAxB;YACI,OAAO,eAAe,CAAC;QAC3B,CAAC;;;OAAA;IACD,sBAAW,qBAAO;aAAlB;YACI,OAAO,SAAS,CAAC;QA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qBAAqB;WACrC;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC,mHAAmH,gDAAgD,EAAE;WACrK;WACA,IAAI;WACJ;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,E;;;;;WC5BA;WACA;WACA;WACA,cAAc,0BAA0B,EAAE;WAC1C,cAAc,eAAe;WAC7B,gCAAgC,YAAY;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,wCAAwC,yCAAyC;WACjF;WACA;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA;WACA,CAAC,I;;;;;WCPD;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,EAAE;WACF;WACA,E;;;;;WCVA,6CAA6C,wDAAwD,E;;;;;WCArG;WACA;WACA;WACA,sDAAsD,kBAAkB;WACxE;WACA,+CAA+C,cAAc;WAC7D,E;;;;;WCNA;WACA;WACA;WACA;WACA,E;;;;;WCJA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA,6CAA6C,uCAAuC;;WAEpF;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,oBAAoB;WAC1B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA,4G;;;;;UChDA;UACA;UACA;UACA,mFAAmF,oDAAoD,EAAE;UACzI","file":"ace-calendar.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"), require(\"_\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\", \"_\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Library\"] = factory(require(\"react\"), require(\"react-dom\"), require(\"_\"));\n\telse\n\t\troot[\"Library\"] = factory(root[\"React\"], root[\"ReactDOM\"], root[\"_\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE_react__, __WEBPACK_EXTERNAL_MODULE_react_dom__, __WEBPACK_EXTERNAL_MODULE_lodash__) {\nreturn ","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Void elements are elements without inner content,\n// which close themselves regardless of trailing slash.\n// E.g. both
and
are self-closing.\nvar VOID_ELEMENTS = [\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n];\n// Block elements trigger newlines where they're inserted,\n// and are always safe places for truncation.\nvar BLOCK_ELEMENTS = [\n \"address\",\n \"article\",\n \"aside\",\n \"blockquote\",\n \"canvas\",\n \"dd\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"li\",\n \"main\",\n \"nav\",\n \"noscript\",\n \"ol\",\n \"output\",\n \"p\",\n \"pre\",\n \"section\",\n \"table\",\n \"tbody\",\n \"tfoot\",\n \"thead\",\n \"tr\",\n \"ul\",\n \"video\",\n];\n// Elements that are unbreakable: they are either included verbatim, or omitted entirely.\nvar UNBREAKABLE_ELEMENTS = [\"audio\", \"math\", \"svg\", \"video\"];\nvar NEWLINE_CHAR_CODE = 10; // '\\n'\nvar EXCLAMATION_CHAR_CODE = 33; // '!'\nvar DOUBLE_QUOTE_CHAR_CODE = 34; // '\"'\nvar AMPERSAND_CHAR_CODE = 38; // '&'\nvar SINGLE_QUOTE_CHAR_CODE = 39; // '\\''\nvar FORWARD_SLASH_CHAR_CODE = 47; // '/'\nvar SEMICOLON_CHAR_CODE = 59; // ';'\nvar TAG_OPEN_CHAR_CODE = 60; // '<'\nvar EQUAL_SIGN_CHAR_CODE = 61; // '='\nvar TAG_CLOSE_CHAR_CODE = 62; // '>'\nvar CHAR_OF_INTEREST_REGEX = /[<&\\n\\ud800-\\udbff]/;\nvar CHAR_OF_INTEREST_NO_NEWLINE_REGEX = /[<&\\ud800-\\udbff]/;\nvar SIMPLIFY_WHITESPACE_REGEX = /\\s+/g;\n/**\n * Clips a string to a maximum length. If the string exceeds the length, it is truncated and an\n * indicator (an ellipsis, by default) is appended.\n *\n * In detail, the clipping rules are as follows:\n * - The resulting clipped string may never contain more than maxLength characters. Examples:\n * - clip(\"foo\", 3) => \"foo\"\n * - clip(\"foo\", 2) => \"f…\"\n * - The indicator is inserted if and only if the string is clipped at any place other than a\n * newline. Examples:\n * - clip(\"foo bar\", 5) => \"foo …\"\n * - clip(\"foo\\nbar\", 5) => \"foo\"\n * - If the html option is true and valid HTML is inserted, the clipped output *must* also be valid\n * HTML. If the input is not valid HTML, the result is undefined (not to be confused with JS'\n * \"undefined\" type; some errors might be detected and result in an exception, but this is not\n * guaranteed).\n *\n * @param string The string to clip.\n * @param maxLength The maximum length of the clipped string in number of characters.\n * @param options Optional options object.\n *\n * @return The clipped string.\n */\nfunction clip(string, maxLength, options) {\n if (options === void 0) { options = {}; }\n if (!string) {\n return \"\";\n }\n string = string.toString();\n return options.html\n ? clipHtml(string, maxLength, options)\n : clipPlainText(string, maxLength, options);\n}\nexports.default = clip;\nfunction clipHtml(string, maxLength, options) {\n var _a = options.imageWeight, imageWeight = _a === void 0 ? 2 : _a, _b = options.indicator, indicator = _b === void 0 ? \"\\u2026\" : _b, _c = options.maxLines, maxLines = _c === void 0 ? Infinity : _c, _d = options.stripTags, stripTags = _d === void 0 ? false : _d;\n var numChars = indicator.length;\n var numLines = 1;\n var shouldStrip = typeof stripTags === \"boolean\"\n ? function () { return stripTags; }\n : function (tagName) { return stripTags.includes(tagName); };\n var tagStack = []; // Stack of currently open HTML tags.\n var popTagStack = function (result) {\n var tagName;\n while (((tagName = tagStack.pop()), tagName !== undefined)) {\n if (!shouldStrip(tagName)) {\n result += \"\";\n }\n }\n return result;\n };\n var i = 0;\n var unbreakableElementIndex = -1;\n var length = string.length;\n for (; i < length; i++) {\n var rest = i ? string.slice(i) : string;\n var willSimplifyWhiteSpace = shouldSimplifyWhiteSpace(tagStack);\n var regex = unbreakableElementIndex > -1 || willSimplifyWhiteSpace\n ? CHAR_OF_INTEREST_NO_NEWLINE_REGEX\n : CHAR_OF_INTEREST_REGEX;\n var nextIndex = rest.search(regex);\n var nextBlockSize = nextIndex > -1 ? nextIndex : rest.length;\n if (unbreakableElementIndex === -1) {\n if (willSimplifyWhiteSpace) {\n var simplifiedBlock = simplifyWhiteSpace(nextBlockSize === rest.length ? rest : rest.slice(0, nextIndex));\n if (shouldStrip(tagStack[tagStack.length - 1])) {\n // We want to strip whitespace, but we need to insert spaces if stripping the\n // tags and whitespace together would otherwise inadvertently concatenate words:\n var insertSpaceBefore = i > 0 && !isWhiteSpace(string.charCodeAt(i - 1));\n var insertSpaceAfter = !isWhiteSpace(string.charCodeAt(i + nextBlockSize));\n if (simplifiedBlock.length > 0) {\n simplifiedBlock =\n (insertSpaceBefore ? \" \" : \"\") +\n simplifiedBlock +\n (insertSpaceAfter ? \" \" : \"\");\n }\n else if (insertSpaceBefore && insertSpaceAfter) {\n simplifiedBlock = \" \";\n }\n string = string.slice(0, i) + simplifiedBlock + string.slice(i + nextBlockSize);\n nextBlockSize = simplifiedBlock.length;\n }\n numChars += simplifiedBlock.length;\n if (numChars > maxLength) {\n break;\n }\n }\n else {\n numChars += nextBlockSize;\n if (numChars > maxLength) {\n i = Math.max(i + nextBlockSize - numChars + maxLength, 0);\n break;\n }\n }\n }\n i += nextBlockSize;\n if (nextIndex === -1) {\n break;\n }\n var charCode = string.charCodeAt(i);\n if (charCode === TAG_OPEN_CHAR_CODE) {\n var nextCharCode = string.charCodeAt(i + 1);\n var isSpecialTag = nextCharCode === EXCLAMATION_CHAR_CODE;\n if (isSpecialTag && string.substr(i + 2, 2) === \"--\") {\n var commentEndIndex = string.indexOf(\"-->\", i + 4) + 3;\n i = commentEndIndex - 1; // - 1 because the outer for loop will increment it\n }\n else if (isSpecialTag && string.substr(i + 2, 7) === \"[CDATA[\") {\n var cdataEndIndex = string.indexOf(\"]]>\", i + 9) + 3;\n i = cdataEndIndex - 1; // - 1 because the outer for loop will increment it\n // note we don't count CDATA text for our character limit because it is only\n // allowed within SVG and MathML content, both of which we don't clip\n }\n else {\n // don't open new tags if we are currently at the limit\n var isEndTag = nextCharCode === FORWARD_SLASH_CHAR_CODE;\n if (numChars === maxLength && !isEndTag) {\n numChars++;\n break;\n }\n var attributeQuoteCharCode = 0;\n var endIndex = i;\n var isAttributeValue = false;\n while (true /* eslint-disable-line */) {\n endIndex++;\n if (endIndex >= length) {\n throw new Error(\"Invalid HTML: \" + string);\n }\n var charCode_1 = string.charCodeAt(endIndex);\n if (isAttributeValue) {\n if (attributeQuoteCharCode) {\n if (charCode_1 === attributeQuoteCharCode) {\n isAttributeValue = false;\n }\n }\n else {\n if (isWhiteSpace(charCode_1)) {\n isAttributeValue = false;\n }\n else if (charCode_1 === TAG_CLOSE_CHAR_CODE) {\n isAttributeValue = false;\n endIndex--; // re-evaluate this character\n }\n }\n }\n else if (charCode_1 === EQUAL_SIGN_CHAR_CODE) {\n while (isWhiteSpace(string.charCodeAt(endIndex + 1))) {\n endIndex++; // skip whitespace\n }\n isAttributeValue = true;\n var firstAttributeCharCode = string.charCodeAt(endIndex + 1);\n if (firstAttributeCharCode === DOUBLE_QUOTE_CHAR_CODE ||\n firstAttributeCharCode === SINGLE_QUOTE_CHAR_CODE) {\n attributeQuoteCharCode = firstAttributeCharCode;\n endIndex++;\n }\n else {\n attributeQuoteCharCode = 0;\n }\n }\n else if (charCode_1 === TAG_CLOSE_CHAR_CODE) {\n var tagNameStartIndex = i + (isEndTag ? 2 : 1);\n var tagNameEndIndex = Math.min(indexOfWhiteSpace(string, tagNameStartIndex), endIndex);\n var tagName = string\n .slice(tagNameStartIndex, tagNameEndIndex)\n .toLowerCase();\n if (tagName.charCodeAt(tagName.length - 1) === FORWARD_SLASH_CHAR_CODE) {\n // Remove trailing slash for self-closing tag names like
\n tagName = tagName.slice(0, tagName.length - 1);\n }\n var strip = shouldStrip(tagName);\n if (isEndTag) {\n var currentTagName = tagStack.pop();\n if (currentTagName !== tagName) {\n throw new Error(\"Invalid HTML: \" + string);\n }\n if (UNBREAKABLE_ELEMENTS.includes(tagName)) {\n if (UNBREAKABLE_ELEMENTS.some(function (tagName) {\n return tagStack.includes(tagName);\n })) {\n // It's a nested unbreakable element.\n }\n else if (strip) {\n i = unbreakableElementIndex;\n unbreakableElementIndex = -1;\n }\n else {\n unbreakableElementIndex = -1;\n numChars += imageWeight;\n if (numChars > maxLength) {\n break;\n }\n }\n }\n // Block level elements should trigger a new line, unless stripped or\n // part of unbreakable content.\n var isBlockElement = BLOCK_ELEMENTS.includes(tagName);\n if (isBlockElement && unbreakableElementIndex === -1 && !strip) {\n numLines++;\n if (numLines > maxLines) {\n // If we exceed the max lines, push the tag back onto the\n // stack so that it will be added back correctly after\n // truncation.\n tagStack.push(tagName);\n break;\n }\n }\n }\n else if (VOID_ELEMENTS.includes(tagName) ||\n string.charCodeAt(endIndex - 1) === FORWARD_SLASH_CHAR_CODE) {\n if (strip) {\n // Stripped elements aren't counted towards anything.\n }\n else if (tagName === \"br\") {\n numLines++;\n if (numLines > maxLines) {\n break;\n }\n }\n else if (tagName === \"img\") {\n numChars += imageWeight;\n if (numChars > maxLength) {\n break;\n }\n }\n }\n else {\n if (UNBREAKABLE_ELEMENTS.some(function (tagName) { return tagStack.includes(tagName); })) {\n // It's a nested unbreakable element.\n }\n else if (UNBREAKABLE_ELEMENTS.includes(tagName)) {\n unbreakableElementIndex = i;\n }\n tagStack.push(tagName);\n }\n if (strip && unbreakableElementIndex === -1) {\n string = string.slice(0, i) + string.slice(endIndex + 1);\n i--; // Re-evaluate this index, because its contents changed.\n }\n else {\n i = endIndex;\n }\n break;\n }\n }\n if (numChars > maxLength || numLines > maxLines) {\n break;\n }\n }\n }\n else if (charCode === AMPERSAND_CHAR_CODE) {\n var endIndex = i + 1;\n var isCharacterReference = true;\n while (true /* eslint-disable-line */) {\n var charCode_2 = string.charCodeAt(endIndex);\n if (isCharacterReferenceCharacter(charCode_2)) {\n endIndex++;\n }\n else if (charCode_2 === SEMICOLON_CHAR_CODE) {\n break;\n }\n else {\n isCharacterReference = false;\n break;\n }\n }\n if (unbreakableElementIndex === -1) {\n numChars++;\n if (numChars > maxLength) {\n break;\n }\n }\n if (isCharacterReference) {\n i = endIndex;\n }\n }\n else if (charCode === NEWLINE_CHAR_CODE) {\n numChars++;\n if (numChars > maxLength) {\n break;\n }\n numLines++;\n if (numLines > maxLines) {\n break;\n }\n }\n else {\n if (unbreakableElementIndex === -1) {\n numChars++;\n if (numChars > maxLength) {\n break;\n }\n }\n if ((charCode & 0xfc00) === 0xd800) {\n // high Unicode surrogate should never be separated from its matching low surrogate\n var nextCharCode = string.charCodeAt(i + 1);\n if ((nextCharCode & 0xfc00) === 0xdc00) {\n i++;\n }\n }\n }\n }\n if (numChars > maxLength) {\n var nextChar = takeHtmlCharAt(string, i);\n if (indicator) {\n var peekIndex = i + nextChar.length;\n while (string.charCodeAt(peekIndex) === TAG_OPEN_CHAR_CODE &&\n string.charCodeAt(peekIndex + 1) === FORWARD_SLASH_CHAR_CODE) {\n var nextPeekIndex = string.indexOf(\">\", peekIndex + 2) + 1;\n if (nextPeekIndex) {\n peekIndex = nextPeekIndex;\n }\n else {\n break;\n }\n }\n if (peekIndex && (peekIndex === string.length || isLineBreak(string, peekIndex))) {\n // if there's only a single character remaining in the input string, or the next\n // character is followed by a line-break, we can include it instead of the clipping\n // indicator (provided it's not a special HTML character)\n i += nextChar.length;\n nextChar = string.charAt(i);\n }\n }\n // include closing tags before adding the clipping indicator if that's where they\n // are in the input string\n while (nextChar === \"<\" && string.charCodeAt(i + 1) === FORWARD_SLASH_CHAR_CODE) {\n var tagName = tagStack.pop();\n if (!tagName) {\n break;\n }\n var tagEndIndex = string.indexOf(\">\", i + 2);\n if (tagEndIndex === -1 || string.slice(i + 2, tagEndIndex).trim() !== tagName) {\n throw new Error(\"Invalid HTML: \" + string);\n }\n if (shouldStrip(tagName)) {\n string = string.slice(0, i) + string.slice(tagEndIndex + 1);\n }\n else {\n i = tagEndIndex + 1;\n }\n nextChar = string.charAt(i);\n }\n if (i < string.length) {\n if (!options.breakWords) {\n // try to clip at word boundaries, if desired\n for (var j = i - indicator.length; j >= 0; j--) {\n var charCode = string.charCodeAt(j);\n if (charCode === TAG_CLOSE_CHAR_CODE || charCode === SEMICOLON_CHAR_CODE) {\n // these characters could be just regular characters, so if they occur in\n // the middle of a word, they would \"break\" our attempt to prevent breaking\n // of words, but given this seems highly unlikely and the alternative is\n // doing another full parsing of the preceding text, this seems acceptable.\n break;\n }\n else if (charCode === NEWLINE_CHAR_CODE || charCode === TAG_OPEN_CHAR_CODE) {\n i = j;\n break;\n }\n else if (isWhiteSpace(charCode)) {\n i = j + (indicator ? 1 : 0);\n break;\n }\n }\n }\n var result = string.slice(0, i);\n if (!isLineBreak(string, i)) {\n result += indicator;\n }\n return popTagStack(result);\n }\n }\n else if (numLines > maxLines) {\n return popTagStack(string.slice(0, i));\n }\n return string;\n}\nfunction clipPlainText(string, maxLength, options) {\n var _a = options.indicator, indicator = _a === void 0 ? \"\\u2026\" : _a, _b = options.maxLines, maxLines = _b === void 0 ? Infinity : _b;\n var numChars = indicator.length;\n var numLines = 1;\n var i = 0;\n var length = string.length;\n for (; i < length; i++) {\n numChars++;\n if (numChars > maxLength) {\n break;\n }\n var charCode = string.charCodeAt(i);\n if (charCode === NEWLINE_CHAR_CODE) {\n numLines++;\n if (numLines > maxLines) {\n break;\n }\n }\n else if ((charCode & 0xfc00) === 0xd800) {\n // high Unicode surrogate should never be separated from its matching low surrogate\n var nextCharCode = string.charCodeAt(i + 1);\n if ((nextCharCode & 0xfc00) === 0xdc00) {\n i++;\n }\n }\n }\n if (numChars > maxLength) {\n var nextChar = takeCharAt(string, i);\n if (indicator) {\n var peekIndex = i + nextChar.length;\n if (peekIndex === string.length) {\n return string;\n }\n else if (string.charCodeAt(peekIndex) === NEWLINE_CHAR_CODE) {\n return string.slice(0, i + nextChar.length);\n }\n }\n if (!options.breakWords) {\n // try to clip at word boundaries, if desired\n for (var j = i - indicator.length; j >= 0; j--) {\n var charCode = string.charCodeAt(j);\n if (charCode === NEWLINE_CHAR_CODE) {\n i = j;\n nextChar = \"\\n\";\n break;\n }\n else if (isWhiteSpace(charCode)) {\n i = j + (indicator ? 1 : 0);\n break;\n }\n }\n }\n return string.slice(0, i) + (nextChar === \"\\n\" ? \"\" : indicator);\n }\n else if (numLines > maxLines) {\n return string.slice(0, i);\n }\n return string;\n}\nfunction indexOfWhiteSpace(string, fromIndex) {\n var length = string.length;\n for (var i = fromIndex; i < length; i++) {\n if (isWhiteSpace(string.charCodeAt(i))) {\n return i;\n }\n }\n // Rather than -1, this function returns the length of the string if no match is found,\n // so it works well with the Math.min() usage above:\n return length;\n}\nfunction isCharacterReferenceCharacter(charCode) {\n return ((charCode >= 48 && charCode <= 57) ||\n (charCode >= 65 && charCode <= 90) ||\n (charCode >= 97 && charCode <= 122));\n}\nfunction isLineBreak(string, index) {\n var firstCharCode = string.charCodeAt(index);\n if (firstCharCode === NEWLINE_CHAR_CODE) {\n return true;\n }\n else if (firstCharCode === TAG_OPEN_CHAR_CODE) {\n var newlineElements = \"(\" + BLOCK_ELEMENTS.join(\"|\") + \"|br)\";\n var newlineRegExp = new RegExp(\"^<\" + newlineElements + \"[\\t\\n\\f\\r ]*/?>\", \"i\");\n return newlineRegExp.test(string.slice(index));\n }\n else {\n return false;\n }\n}\nfunction isWhiteSpace(charCode) {\n return (charCode === 9 || charCode === 10 || charCode === 12 || charCode === 13 || charCode === 32);\n}\n/**\n * Certain tags don't display their whitespace-only content. In such cases, we\n * should simplify the whitespace before counting it.\n */\nfunction shouldSimplifyWhiteSpace(tagStack) {\n for (var i = tagStack.length - 1; i >= 0; i--) {\n var tagName = tagStack[i];\n if (tagName === \"li\" || tagName === \"td\") {\n return false;\n }\n if (tagName === \"ol\" || tagName === \"table\" || tagName === \"ul\") {\n return true;\n }\n }\n return false;\n}\nfunction simplifyWhiteSpace(string) {\n return string.trim().replace(SIMPLIFY_WHITESPACE_REGEX, \" \");\n}\nfunction takeCharAt(string, index) {\n var charCode = string.charCodeAt(index);\n if ((charCode & 0xfc00) === 0xd800) {\n // high Unicode surrogate should never be separated from its matching low surrogate\n var nextCharCode = string.charCodeAt(index + 1);\n if ((nextCharCode & 0xfc00) === 0xdc00) {\n return String.fromCharCode(charCode, nextCharCode);\n }\n }\n return String.fromCharCode(charCode);\n}\nfunction takeHtmlCharAt(string, index) {\n var char = takeCharAt(string, index);\n if (char === \"&\") {\n while (true /* eslint-disable-line */) {\n index++;\n var nextCharCode = string.charCodeAt(index);\n if (isCharacterReferenceCharacter(nextCharCode)) {\n char += String.fromCharCode(nextCharCode);\n }\n else if (nextCharCode === SEMICOLON_CHAR_CODE) {\n char += String.fromCharCode(nextCharCode);\n break;\n }\n else {\n break;\n }\n }\n }\n return char;\n}\n","/**\r\n * Describes the shape of a single action.\r\n */\r\nexport interface ICalendarStateAction {\r\n type: ActionType;\r\n value?: any;\r\n}\r\n\r\n/**\r\n * Represents all of the actions that a user can perform on the search page. It's a class so that a dev can extend it.\r\n */\r\nexport class ActionType {\r\n static get NextMonth() {\r\n return \"NextMonth\";\r\n }\r\n static get PreviousMonth() {\r\n return \"PreviousMonth\";\r\n }\r\n static get AddDays() {\r\n return \"AddDays\";\r\n }\r\n static get SetMonth() {\r\n return \"SetMonth\";\r\n }\r\n static get GoToMonth() {\r\n return \"GoToMonth\";\r\n }\r\n static get SetDates() {\r\n return \"SetDates\";\r\n }\r\n static get UpdateEventFilter() {\r\n return \"UpdateEventFilter\";\r\n }\r\n static get EventApiError() {\r\n return \"EventApiError\";\r\n }\r\n static get RemoveEventFilter() {\r\n return \"RemoveEventFilter\";\r\n }\r\n static get RemoveAllEventFilters() {\r\n return \"RemoveAllEventFilters\";\r\n }\r\n static get UpdateEvents() {\r\n return \"UpdateEvents\";\r\n }\r\n static get ChangeProductionSeasonFilter() {\r\n return \"ChangeProductionSeasonFilter\";\r\n }\r\n static get BrowserNavigated() {\r\n return \"BrowserNavigated\";\r\n }\r\n static get EventUpdated() {\r\n return \"EventUpdated\";\r\n }\r\n static get RequestEvents() {\r\n return \"RequestEvents\";\r\n }\r\n static get UpdateSettings() {\r\n return \"UpdateSettings\";\r\n }\r\n static get RequestText() {\r\n return \"RequestText\";\r\n }\r\n static get ReceiveText() {\r\n return \"ReceiveText\";\r\n }\r\n static get ErrorApiText() {\r\n return \"ErrorApiText\";\r\n }\r\n static get RequestPromoCodeApply() {\r\n return \"RequstPromoCodeApply\";\r\n }\r\n static get ReceivePromoCodeApply() {\r\n return \"ReceivePromoCodeApply\";\r\n }\r\n static get ErrorPromoCodeApply() {\r\n return \"ErrorPromoCodeApply\";\r\n }\r\n static get RequestPromoCodeRemove() {\r\n return \"RequestPromoCodeRemove\";\r\n }\r\n static get ReceivePromoCodeRemove() {\r\n return \"ReceivePromoCodeRemove\";\r\n }\r\n static get ReceivePromoCodeGet() {\r\n return \"ReceivePromoCodeGet\";\r\n }\r\n static get ErrorPromoCodeRemove() {\r\n return \"ErrorPromoCodeRemove\";\r\n }\r\n static get SetToMobile() {\r\n return \"SetToMobile\";\r\n }\r\n static get SetToDesktop() {\r\n return \"SetToDesktop\";\r\n }\r\n static get SetToGrid() {\r\n return \"SetToGrid\";\r\n }\r\n static get SetToList() {\r\n return \"SetToList\";\r\n }\r\n static get UpdatePromoCode() {\r\n return \"UpdatePromoCode\";\r\n }\r\n static get ShowPromo() {\r\n return \"ShowPromo\";\r\n }\r\n static get WaitForImage() {\r\n return \"WaitForImage\";\r\n }\r\n static get ImageHasLoaded() {\r\n return \"ImageHasLoaded\";\r\n }\r\n}","import * as moment from 'moment';\r\nimport { IPromoCodeDetail } from './promo-code';\r\n\r\nexport enum CalendarDeviceMode {\r\n DESKTOP,\r\n MOBILE\r\n}\r\n\r\nexport enum CalendarViewMode {\r\n GRID,\r\n LIST\r\n}\r\n\r\nexport interface ICalendarSettings {\r\n loadWrappingMonthDates: boolean;\r\n saveHistory: boolean;\r\n monthsOnCalendar: moment.Moment[];\r\n calendarDeviceMode: CalendarDeviceMode;\r\n calendarViewMode: CalendarViewMode;\r\n desktopToMobileTransitionWidth: string;\r\n scrollToTopAppearanceOffset: number;\r\n filtersAlwaysModal: boolean;\r\n promoCode: IPromoCodeDetail;\r\n}\r\n\r\nconst calendarEntry = document.getElementById(\"calendar-entry-js\");\r\n\r\nexport const defaultCalendarSettings: ICalendarSettings = {\r\n loadWrappingMonthDates: false,\r\n saveHistory: false,\r\n monthsOnCalendar: [],\r\n calendarDeviceMode: CalendarDeviceMode.DESKTOP,\r\n calendarViewMode: CalendarViewMode.GRID,\r\n desktopToMobileTransitionWidth: calendarEntry && calendarEntry.getAttribute(\"data-calendar-breakpoint\") ? calendarEntry.getAttribute(\"data-calendar-breakpoint\") : \"48em\",\r\n scrollToTopAppearanceOffset: parseInt(calendarEntry && calendarEntry.getAttribute(\"data-scroll-to-top-offset\") ? calendarEntry.getAttribute(\"data-scroll-to-top-offset\") : \"500\"),\r\n filtersAlwaysModal: calendarEntry && Boolean(calendarEntry.getAttribute(\"data-filter-always-modal\")) ? Boolean(calendarEntry.getAttribute(\"data-filter-always-modal\")) : false,\r\n promoCode: null\r\n}","/**\r\n * Want to add more text? Go to custom/classes/calendar-text and add new properties there.\r\n */\r\nexport interface ICalendarAppBaseText {\r\n applyPromoCodeButtonText: string;\r\n buyTicketCtaDefaultText: string;\r\n buyTicketCtaUrlFormat: string;\r\n calendarAppHeading: string;\r\n calendarControlsHeading: string;\r\n calendarDoneLoadingLabel: string;\r\n calendarFiltersHeading: string;\r\n calendarKeyword: string;\r\n calendarLoadingLabel: string;\r\n categoryFilterLabelText: string;\r\n categorySelectAllDropdownOption: string;\r\n clearAllButtonText: string;\r\n emptyDayMessaging: string;\r\n emptyMonthMessaging: string;\r\n fallbackThumbnailImageSrc: string;\r\n filterCloseButtonLabel: string;\r\n filterOpenButtonLabel: string\r\n gridViewHeading: string;\r\n gridViewModeButtonText: string;\r\n lastMonthToDisplay: string;\r\n listViewHeading: string;\r\n listViewModeButtonText: string;\r\n loadMoreEventsButtonText: string;\r\n mainBody: string;\r\n monthDropdownDescriptionText: string;\r\n openFiltersButtonText: string;\r\n pluralEventsText: string;\r\n productionFilterLabelText: string;\r\n productionSelectAllDropdownOption: string;\r\n promoCodeDescriptionText: string;\r\n singleEventText: string;\r\n venueFilterLabelText: string;\r\n venueSelectAllDropdownOption: string;\r\n viewDetailDtaDefaultText: string;\r\n\r\n // Not from api but ~about~ api\r\n requesting: boolean;\r\n apiError: any;\r\n}\r\n\r\nexport const defaultBaseText: ICalendarAppBaseText = {\r\n applyPromoCodeButtonText: 'Apply Code',\r\n buyTicketCtaDefaultText: 'Purchase Tickets',\r\n buyTicketCtaUrlFormat: '',\r\n calendarAppHeading: \"Calendar\",\r\n calendarControlsHeading: \"Calendar Controls\",\r\n calendarDoneLoadingLabel: \"Calendar has loaded\",\r\n calendarFiltersHeading: \"Calendar Filters\",\r\n calendarKeyword: '',\r\n calendarLoadingLabel: \"Calendar is loading\",\r\n categoryFilterLabelText: 'Venue Specific Dropdown',\r\n categorySelectAllDropdownOption: 'Series/Genre',\r\n clearAllButtonText: \"Clear All\",\r\n emptyDayMessaging: 'There are no events',\r\n emptyMonthMessaging: 'There are no events',\r\n fallbackThumbnailImageSrc: \"\",\r\n filterCloseButtonLabel: \"Close Filter Dialog\",\r\n filterOpenButtonLabel: \"Open Filter Dialog\",\r\n gridViewHeading: \"Calendar Grid\",\r\n gridViewModeButtonText: 'Grid View',\r\n lastMonthToDisplay: '',\r\n listViewHeading: \"Calendar List\",\r\n listViewModeButtonText: 'List View',\r\n loadMoreEventsButtonText: 'Load More',\r\n mainBody: '',\r\n monthDropdownDescriptionText: \"Select month\",\r\n openFiltersButtonText: \"Filters\",\r\n pluralEventsText: \"events\",\r\n productionFilterLabelText: 'Performances',\r\n productionSelectAllDropdownOption: 'All Productions',\r\n promoCodeDescriptionText: \"Enter promo code\",\r\n singleEventText: \"event\",\r\n venueFilterLabelText: 'Venue',\r\n venueSelectAllDropdownOption: 'All Venues',\r\n viewDetailDtaDefaultText: '',\r\n\r\n requesting: false,\r\n apiError: null,\r\n}","import * as moment from 'moment';\r\n\r\nexport * from './calendar-text';\r\nexport * from './calendar-settings';\r\n\r\nimport { IEvent } from '../custom/classes/event';\r\n\r\nexport interface IOption {\r\n text: string;\r\n value: string;\r\n /**\r\n * This is a DateTime string in ISO format.\r\n */\r\n firstOccurance: string;\r\n}\r\n\r\n/**\r\n * Enum representing each day in the week.\r\n */\r\nexport enum Weekday {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6,\r\n}\r\n\r\nexport interface ICalendarService {\r\n (options: ICalendarOptions): ICalendar;\r\n}\r\n\r\n\r\nexport interface ICalendarOptions {\r\n month: number;\r\n year: number;\r\n weekStart?: number;\r\n days?: Array>;\r\n events?: Array;\r\n weekdayNames?: Array;\r\n}\r\n\r\n\r\nexport interface ICalendar {\r\n days: Array>;\r\n allDays: Array>;\r\n weeks: Array>;\r\n weekdays: Array;\r\n}\r\n\r\nexport interface IDay {\r\n date: Date;\r\n events?: Array;\r\n}\r\n\r\n\r\nexport interface IWeek {\r\n days: Array>\r\n}\r\n\r\nexport interface IMonth {\r\n monthMoment: moment.Moment;\r\n events: ICalendar;\r\n}\r\n\r\n\r\nexport interface IBaseEvent {\r\n id: string;\r\n /**\r\n * The date of the event. This is not a moment object because it's pulled from the API.\r\n * Potential optimization if necessary is to convert to a moment object when data is pulled.\r\n */\r\n eventDate: Date | string;\r\n eventDateString: string;\r\n eventTimeString: string;\r\n name?: string;\r\n residentCompany?: string;\r\n location?: string;\r\n thumbnail?: string;\r\n synopsis?: string;\r\n buyTicketCtaUrl?: string;\r\n buyTicketCtaText?: string;\r\n viewDetailCtaUrl?: string;\r\n viewDetailCtaText?: string;\r\n categories?: string[];\r\n}\r\n\r\n\r\nexport interface IDateRange {\r\n start: Date;\r\n end: Date;\r\n}\r\n\r\n\r\nexport interface ICalendarState {\r\n updating: boolean;\r\n specificDates: boolean;\r\n extendEvents: boolean;\r\n startDate: moment.Moment;\r\n endDate: moment.Moment;\r\n currentDate: moment.Moment;\r\n eventFilter: IEventFilter[];\r\n filterFunction: (event: IEvent) => boolean;\r\n productionSeasonFilter: number;\r\n events: IMonth[];\r\n apiError: any;\r\n}\r\n\r\nexport const defaultCalendarModel: ICalendarState = {\r\n updating: false,\r\n specificDates: false,\r\n extendEvents: false,\r\n startDate: moment(moment().startOf('month')),\r\n endDate: moment(moment().endOf('month')),\r\n currentDate: moment().clone(),\r\n eventFilter: [],\r\n productionSeasonFilter: 0,\r\n filterFunction: () => { return true; },\r\n events: [{\r\n monthMoment: moment(),\r\n events: {\r\n allDays: [],\r\n days: [],\r\n weekdays: [],\r\n weeks: []\r\n }\r\n }],\r\n apiError: null\r\n};\r\n\r\n//export interface IProductionSeasonFilter {\r\n// productionSeasonId: number;\r\n// productionName: string;\r\n//}\r\n\r\nexport interface IEventFilter {\r\n key: string;\r\n selectedValue: any;\r\n filter: (event: IEvent) => boolean;\r\n}\r\n","export interface ILazyLoadState {\r\n imageHasLoaded: { [key: string]: boolean };\r\n}\r\n\r\nexport const defaultLazyLoadState: ILazyLoadState = {\r\n imageHasLoaded: {}\r\n};","export interface IPromoCodeState {\r\n /**\r\n * Set to true if the app is waiting for a response from the promo-code API.\r\n */\r\n promoCodeRequesting: boolean;\r\n /**\r\n * The promo code that is currently being entered.\r\n */\r\n promoCodeString: string;\r\n /**\r\n * The promo code that has been applied.\r\n */\r\n appliedPromoCode: string;\r\n /**\r\n * The response from the last time the promo code API was called.\r\n */\r\n promoApiResponse: any;\r\n /**\r\n * The current state of the promo code.\r\n */\r\n promoCodeState: PromoCodeState;\r\n /**\r\n * If the API responds with an error.\r\n */\r\n promoCodeError: any;\r\n\r\n showPromo: boolean;\r\n showPromoResult: boolean;\r\n}\r\n\r\n\r\nexport enum PromoCodeState {\r\n APPLIED,\r\n FAILURE,\r\n ATTEMPT\r\n}\r\n\r\nexport interface IPromoCodeDetail {\r\n promoCode: string;\r\n text1: string;\r\n text2: string;\r\n text3: string;\r\n text4: string;\r\n text5: string;\r\n text6: string;\r\n}\r\n\r\nexport const defaultPromoCodeDetail: IPromoCodeDetail ={\r\n promoCode: \"\",\r\n text1: \"\",\r\n text2: \"\",\r\n text3: \"\",\r\n text4: \"\",\r\n text5: \"\",\r\n text6: \"\",\r\n}\r\n\r\nexport const defaultPromoCodeState: IPromoCodeState = {\r\n appliedPromoCode: \"\",\r\n promoCodeRequesting: false,\r\n promoCodeState: PromoCodeState.ATTEMPT,\r\n promoApiResponse: null,\r\n promoCodeError: null,\r\n promoCodeString: \"\",\r\n showPromo: false,\r\n showPromoResult: false\r\n};","import axios from 'axios';\r\nimport * as moment from 'moment';\r\nimport { memoize } from 'lodash';\r\n\r\nimport { ICalendarAppText } from '../custom/classes/calendar-text';\r\nimport { ICalendarState, ICalendarSettings, IOption } from '../classes/calendar';\r\nimport { IEvent } from '../custom/classes/event';\r\nimport { IPromoCodeDetail } from '../classes/promo-code';\r\nimport { ICalendarFilterRequest } from '../classes/calendar-requests';\r\n\r\nexport default class CalendarApi {\r\n private static apiDateFormat = \"YYYY-MM-DD\";\r\n private static aceCalendarAPIRoute = process.env.CAL_API_ROUTE;\r\n\r\n private static eventsCache = memoize(CalendarApi.getEventsWrapper, (state: ICalendarState, settings: ICalendarSettings) => `${state.startDate.format('YYYY-MM-DD')}~${state.endDate.format('YYYY-MM-DD')}~${state.productionSeasonFilter.toString()}`);\r\n private static textCache = memoize(CalendarApi.getTextFromApi, (pageId: number, culture: string) => `${pageId}${culture}`);\r\n private static filtersCache = memoize(CalendarApi.getFiltersApi, (filter: string, culture: string) => `${filter}${culture}`);\r\n\r\n private static filtersSource = axios.CancelToken.source();\r\n\r\n private static getFiltersApi(filter: string, endDate: string, culture: string): Promise {\r\n const startDate = moment().startOf(\"month\").format(this.apiDateFormat);\r\n\r\n var requestString: string = '/';\r\n\r\n if (culture.length > 0) {\r\n requestString += culture + '/';\r\n }\r\n\r\n requestString = `${requestString}${this.aceCalendarAPIRoute}${process.env.CAL_FILTER_ROUTE}?name=${filter}&start=${startDate}&end=${endDate}`;\r\n\r\n return axios.get(requestString, {\r\n withCredentials: true,\r\n cancelToken: this.filtersSource.token\r\n }).then(response => response.data);\r\n }\r\n\r\n /**\r\n * Call the API to receive a more specific set of filters.\r\n * @param filter\r\n * @param culture\r\n */\r\n public static getFiltersFor(filter: string, endDate: moment.Moment, culture = \"\"): Promise {\r\n const endDateFormatted = endDate.format(this.apiDateFormat);\r\n\r\n return this.getFiltersApi(filter, endDateFormatted, culture);\r\n\r\n // This is the memoized variant. Since the request is cancelable, memoize would need to be tweaked to be properly utilized.\r\n //return this.filtersCache(filter, culture);\r\n }\r\n\r\n private static getFirstOccurenceForFilterApi(currentFilters: Map, endDate: string, culture: string): Promise {\r\n const startDate = moment().startOf(\"month\").format(this.apiDateFormat);\r\n\r\n var requestString: string = '/';\r\n\r\n if (culture.length > 0) {\r\n requestString += culture + '/';\r\n }\r\n\r\n requestString = `${requestString}${this.aceCalendarAPIRoute}${process.env.CAL_FIRST_OCCURRENCE_ROUTE}`;\r\n\r\n //var calendarFilters = [];\r\n //(Array.from(currentFilters)).forEach((val, key) => {\r\n // calendarFilters.push({ filterName: key, filterValue: val });\r\n //});\r\n\r\n const calendarFilters = (Object as any).entries(currentFilters)\r\n .map(arr => { return { filterName: arr[0], filterValue: arr[1] } })\r\n\r\n const filterRequest: ICalendarFilterRequest = {\r\n startDate: startDate,\r\n endDate: endDate,\r\n calendarFilters: calendarFilters\r\n\r\n }\r\n return axios.post(requestString,\r\n filterRequest,\r\n {\r\n method: \"POST\",\r\n withCredentials: true,\r\n cancelToken: this.filtersSource.token\r\n }\r\n ).then(response => response.data);\r\n }\r\n\r\n /**\r\n * Call the API to receive a more specific set of filters.\r\n * @param filter\r\n * @param culture\r\n */\r\n public static getFirstOccurenceForFilters(filters: Map, endDate: moment.Moment, culture = \"\"): Promise {\r\n const endDateFormatted = endDate.format(this.apiDateFormat);\r\n\r\n return this.getFirstOccurenceForFilterApi(filters, endDateFormatted, culture);\r\n\r\n // This is the memoized variant. Since the request is cancelable, memoize would need to be tweaked to be properly utilized.\r\n //return this.filtersCache(filter, culture);\r\n }\r\n\r\n /**\r\n * Invoke this to cancel all outstanding requests to retrieve filters.\r\n * @param reason\r\n */\r\n public static cancelFiltersRequest(reason = \"Filters API request manually canceled.\") {\r\n this.filtersSource.cancel(reason);\r\n }\r\n\r\n /**\r\n * Wrapper function to automatically determine which API call to make.\r\n * @param state The calendar state.\r\n * @param settings The settings of the current calendar.\r\n */\r\n private static getEventsWrapper(state: ICalendarState, settings: ICalendarSettings) {\r\n const startDate = settings.loadWrappingMonthDates ? state.startDate.startOf(\"week\").format(this.apiDateFormat) : state.startDate.format(this.apiDateFormat);\r\n const endDate = settings.loadWrappingMonthDates ? state.endDate.startOf(\"week\").format(this.apiDateFormat) : state.endDate.format(this.apiDateFormat);\r\n\r\n if (state.productionSeasonFilter > 0) {\r\n return this.getProductionEventsForDates(\"\", state.productionSeasonFilter, startDate, endDate);\r\n } else {\r\n return this.getEventsForDates(\"\", startDate, endDate);\r\n }\r\n }\r\n\r\n /**\r\n * When grabbing all events between two dates from the API.\r\n * @param culture\r\n * @param startDate\r\n * @param endDate\r\n */\r\n private static getEventsForDates(culture: string, startDate: string, endDate: string): Promise {\r\n var requestString: string = '/';\r\n\r\n if (culture.length > 0) {\r\n requestString += culture + '/';\r\n }\r\n\r\n console.log(this.aceCalendarAPIRoute);\r\n requestString = requestString + this.aceCalendarAPIRoute + process.env.CAL_ACTION_INDEX + \"?startDate=\" + startDate + \"&endDate=\" + endDate;\r\n\r\n return axios.get(requestString, {\r\n withCredentials: true\r\n }).then(response => response.data);\r\n }\r\n\r\n /**\r\n * When grabbing events for a specific production ID. This doesn't seem to be used as frequently anymore.\r\n * @param culture\r\n * @param productionSeasonId\r\n * @param startDate\r\n * @param endDate\r\n */\r\n private static getProductionEventsForDates(culture: string, productionSeasonId: number, startDate: string, endDate: string): Promise {\r\n var requestString: string = '/';\r\n\r\n if (culture.length > 0)\r\n requestString += culture + '/';\r\n requestString = requestString + this.aceCalendarAPIRoute + \"/\" + productionSeasonId.toString() + \"/\" + \"?startDate=\" + startDate + \"&endDate=\" + endDate;\r\n\r\n return axios.get(requestString, {\r\n withCredentials: true\r\n }).then(response => response.data);\r\n }\r\n\r\n /**\r\n * Call this to clear the memoized events and start fresh.\r\n */\r\n public static clearEventsCache(): void {\r\n return this.eventsCache.cache.clear();\r\n }\r\n\r\n /**\r\n * The public facing API to retrieve events. Set bustCache to true if you wish to override cached values.\r\n * @param state The calendar's current state.\r\n * @param settings The settings utilized by the calendar.\r\n * @param bustCache Defaults to false, Set to true to force an API call.\r\n */\r\n public static getEvents(state: ICalendarState, settings: ICalendarSettings, bustCache = false): Promise {\r\n if (bustCache) {\r\n this.eventsCache.cache.set(`${state.startDate.format('YYYY-MM-DD')}~${state.endDate.format('YYYY-MM-DD')}~${state.productionSeasonFilter.toString()}`, this.getEventsWrapper(state, settings));\r\n }\r\n\r\n return this.eventsCache(state, settings);\r\n }\r\n\r\n /**\r\n * Grab text data from the API.\r\n * @param pageId\r\n * @param culture\r\n */\r\n private static getTextFromApi(pageId: number, culture: string): Promise {\r\n var requestString: string = '/';\r\n\r\n if (culture.length > 0)\r\n requestString += culture + '/';\r\n requestString = `${requestString}${this.aceCalendarAPIRoute}/text?culture=${culture}&pageId=${pageId}`;\r\n\r\n return axios.get(requestString, {\r\n withCredentials: true,\r\n }).then(response => response.data);\r\n }\r\n\r\n /**\r\n * Public facing API to obtain the text for a relevant culture on the current page.\r\n * @param culture\r\n */\r\n public static getText(culture: string, bustCache = false): Promise {\r\n if (!pageId) {\r\n var pageId = 0;\r\n }\r\n\r\n if (bustCache) {\r\n this.clearTextCache();\r\n }\r\n\r\n return this.textCache(pageId, culture);\r\n }\r\n\r\n /**\r\n * Clear the cache containing the text API information.\r\n */\r\n public static clearTextCache() {\r\n this.textCache.cache.clear();\r\n }\r\n\r\n /**\r\n * Makes a POST request to apply a promo code.\r\n * @param promoCode\r\n */\r\n public static applyPromoCode(promoCode: string): Promise {\r\n var requestString = `/${this.aceCalendarAPIRoute}/ApplyPromoCode`\r\n return axios.post(requestString,\r\n {\r\n promoCode\r\n },\r\n {\r\n method: \"POST\"\r\n }\r\n ).then(response => response.data);\r\n }\r\n\r\n public static removePromoCode(): Promise {\r\n var requestString = `/${this.aceCalendarAPIRoute}/RemovePromoCode`\r\n return axios.post(requestString, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=utf-8\"\r\n }\r\n }).then(response => response.data);\r\n }\r\n\r\n public static getPromoCode(): Promise {\r\n var requestString = `/${this.aceCalendarAPIRoute}/GetPromoCode`\r\n return axios.post(requestString, {\r\n method: \"GET\",\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=utf-8\"\r\n }\r\n }).then(response => response.data as IPromoCodeDetail);\r\n }\r\n}\r\n","import * as moment from 'moment';\r\nimport { groupBy } from 'lodash';\r\nimport { ICalendarOptions, ICalendar, IDay, IWeek, IDateRange, Weekday } from '../classes/calendar';\r\nimport { IEvent } from '../custom/classes/event';\r\n\r\n/**\r\n * Returns an instance of ICalendar\r\n */\r\nexport function create(options: ICalendarOptions): ICalendar {\r\n const days = calendarDays(options);\r\n const allDays = eventDays(options);\r\n return {\r\n days,\r\n allDays,\r\n weeks: weeks(days),\r\n weekdays: weekdays(options)\r\n };\r\n}\r\n\r\n/**\r\n * Fixes behavior where negatiave dividends do not\r\n * \"wrap back around\". For example, we want the following\r\n * behavior: -3 % 7 = 4.\r\n */\r\nexport function mod(dividend: number, divisor: number): number {\r\n return ((dividend % divisor) + divisor) % divisor;\r\n}\r\n\r\n\r\n/**\r\n * Returns an array of Dates for the given calendar month. Accepts\r\n * year, month, and an optional weekStart option.\r\n */\r\nexport function calendarDays(options: ICalendarOptions): Array> {\r\n let range = calendarDateRange(options);\r\n let days = interpolateDays(range).map((d) => { return { date: d } });\r\n\r\n if (options.events) {\r\n return addEvents(days, options.events);\r\n }\r\n\r\n return days;\r\n}\r\n\r\n/**\r\n * Returns an array of Dates for the given calendar month. Accepts\r\n * year, month, and an optional weekStart option.\r\n */\r\nexport function eventDays(options: ICalendarOptions): Array> {\r\n if (options.events.length > 0) {\r\n let sortedEvents = options.events.sort((a, b) => moment(a.eventDate).diff(moment(b.eventDate)));\r\n let range = { start: moment(sortedEvents[0].eventDate).toDate(), end: moment(sortedEvents[sortedEvents.length - 1].eventDate).toDate() };\r\n let days = interpolateDays(range).map((d) => { return { date: d } });\r\n\r\n if (options.events) {\r\n return addEvents(days, options.events);\r\n }\r\n return days;\r\n } else {\r\n return [];\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Converts an Array of days to an Array of weeks.\r\n */\r\nexport function weeks(days: Array>): Array> {\r\n return days.reduce(function (weeks, day, idx) {\r\n let weekIdx = Math.floor(idx / 7);\r\n if (!weeks[weekIdx]) weeks.push([]);\r\n\r\n weeks[weekIdx].push(day);\r\n return weeks;\r\n }, []);\r\n}\r\n\r\n\r\n/**\r\n * Returns start and end dates for the given calendar month. Accepts\r\n * year, month, and an optional weekStart option.\r\n */\r\nexport function calendarDateRange({ year, month, weekStart }: ICalendarOptions): IDateRange {\r\n // Default weekStart to Sunday\r\n if (typeof weekStart !== 'number' || isNaN(weekStart)) {\r\n weekStart = Weekday.Sunday;\r\n }\r\n\r\n if (weekStart > 6 || weekStart < 0) {\r\n throw new Error('weekStart must be an integer in the range [0, 6]');\r\n }\r\n\r\n let monthStart = moment([year, month, 1]);\r\n let start = monthStart.clone();\r\n\r\n // Subtract start offset if necessary; this will occur\r\n // if the first day of the month does not coincide with\r\n // the first day of the week.\r\n let startOffset = mod(start.day() - weekStart, 7);\r\n\r\n if (startOffset != 0) {\r\n start.subtract(startOffset, 'days');\r\n }\r\n\r\n // Add an end offset if necessary; this will occur\r\n // if the last day of the month does not coincide with\r\n // the last day of the week.\r\n let end = monthStart.endOf('month');\r\n let endIndex = mod(end.day() - weekStart, 7);\r\n let endOffset = 6 - endIndex;\r\n\r\n if (endOffset != 0) {\r\n end.add(endOffset, 'days');\r\n }\r\n\r\n return { start: start.toDate(), end: end.toDate() };\r\n}\r\n\r\n\r\n/**\r\n * Returns an array of Dates in the inclusive range [start, end].\r\n */\r\nexport function interpolateDays(range: IDateRange): Array {\r\n let dates = [];\r\n let current = moment(range.start).startOf('day');\r\n let end = moment(range.end).startOf('day');\r\n\r\n if (end < current) {\r\n return [];\r\n }\r\n\r\n while (current <= end) {\r\n dates.push(current.clone().toDate());\r\n current.add(1, 'days');\r\n }\r\n\r\n return dates;\r\n}\r\n\r\n\r\n/**\r\n * Adds events to each day. The events and days options are required.\r\n */\r\nexport function addEvents(days: Array>, events: Array): Array> {\r\n const groupedEvents = groupBy(events, e => moment(e.eventDate).startOf('day').format('YYYYMMDD'));\r\n\r\n return days.map(d => {\r\n const date = moment(d.date).startOf('day').format('YYYYMMDD');\r\n const events = groupedEvents[date];\r\n\r\n d.events = events ? events : [];\r\n return d;\r\n })\r\n}\r\n\r\n\r\n/**\r\n * Returns a function that evaluates if an event's date\r\n * is the same as the supplied day.\r\n */\r\nexport function isSameDay(day: IDay) {\r\n return function (event: T): boolean {\r\n return moment(event.eventDate).isSame(moment(day.date), 'day');\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Returns a list of weekdays with the appropriate weekday start\r\n * day listed first. Used to support week formats that have a\r\n * start day other than Sunday.\r\n */\r\nexport function weekdays({ weekdayNames = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"], weekStart = Weekday.Sunday }): Array {\r\n if (weekStart > 6 || weekStart < 0) {\r\n throw new Error('weekStart must be an integer in the range [0, 6]');\r\n }\r\n\r\n // Simplified since these won't change.\r\n let weekdayIndices = [0, 1, 2, 3, 4, 5, 6];\r\n\r\n let firstHalf = weekdayIndices.slice(weekStart);\r\n let secondHalf = weekdayIndices.slice(0, weekStart);\r\n\r\n return firstHalf.concat(secondHalf).map(i => weekdayNames[i]);\r\n}\r\n","import * as React from 'react';\r\nimport AppView from '../views/library/app.view';\r\nimport Responsive from './responsive';\r\nimport { CalendarDeviceMode } from '../classes/calendar';\r\nimport { ICalendarAppText } from '../custom/classes/calendar-text';\r\n\r\nimport { ICalendarAppState } from '../redux-state';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface AppExternalProps {\r\n\r\n}\r\n\r\ninterface StateToProps {\r\n calendarDeviceMode: CalendarDeviceMode;\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type AppProps = AppExternalProps & StateToProps;\r\n\r\nexport class AppComponent extends React.Component {\r\n constructor(props: AppProps) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: AppExternalProps): StateToProps {\r\n return {\r\n calendarDeviceMode: state.calendarSettings.calendarDeviceMode,\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(AppComponent);\r\n","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { IEvent } from '../custom/classes/event';\r\nimport { ICalendarState, IMonth, CalendarViewMode, CalendarDeviceMode } from '../classes/calendar';\r\nimport { connect } from 'react-redux';\r\n\r\nimport CalendarContainerView from 'calendar-container.view';\r\nimport { ICalendarAppState } from '../redux-state';\r\n\r\ninterface ICalendarContainerExternalProps {\r\n\r\n}\r\n\r\ninterface StateToProps {\r\n calendarViewMode: CalendarViewMode;\r\n calendarDeviceMode: CalendarDeviceMode;\r\n isLoading: boolean;\r\n}\r\n\r\nexport type CalendarContainerProps = ICalendarContainerExternalProps & StateToProps;\r\n\r\nexport class CalendarContainerBase extends React.Component {\r\n\r\n componentDidUpdate(prevProps: CalendarContainerProps) {\r\n const superParent = document.documentElement;\r\n\r\n if (this.props.isLoading) {\r\n // attribute removal happens in the views of the components that trigger loading states.\r\n // removal should happen after all other callback functionality.\r\n superParent.setAttribute(\"data-calendar-loading\", \"true\");\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: ICalendarContainerExternalProps): StateToProps {\r\n return {\r\n calendarViewMode: state.calendarSettings.calendarViewMode,\r\n calendarDeviceMode: state.calendarSettings.calendarDeviceMode,\r\n isLoading: state.calendar.updating\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(CalendarContainerBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { IEvent } from '../custom/classes/event';\r\nimport { ICalendarState, IMonth, CalendarViewMode, CalendarDeviceMode } from '../classes/calendar';\r\nimport { ICalendarAppText } from '../custom/classes/calendar-text';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport { ICalendarAppState } from '../redux-state';\r\n\r\nimport CalendarViewToggleView from 'calendar-view-toggle.view';\r\nimport { setToGrid, setToList } from '../redux-state/actions/calendar-settings.actions';\r\nimport { scrollToMonth } from '../../calendar/helpers/scroll-to-month';\r\n\r\ninterface ICalendarViewTogglePropsExternalProps {\r\n\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText\r\n calendarMode: CalendarViewMode;\r\n calendarDeviceMode: CalendarDeviceMode;\r\n currentDate: moment.Moment;\r\n startMonth: moment.Moment;\r\n}\r\n\r\ninterface DispatchToProps {\r\n setToGrid: (currentDate?: moment.Moment, startDate?: moment.Moment) => void;\r\n setToList: (currentDate?: moment.Moment, startDate?: moment.Moment) => void;\r\n}\r\n\r\nexport type CalendarViewToggleProps = ICalendarViewTogglePropsExternalProps & StateToProps & DispatchToProps;\r\n\r\nexport class CalendarViewToggleBase extends React.Component {\r\n render() {\r\n return (\r\n <>\r\n {\r\n this.props.calendarDeviceMode === CalendarDeviceMode.DESKTOP ? : null\r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: ICalendarViewTogglePropsExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText,\r\n calendarMode: state.calendarSettings.calendarViewMode,\r\n calendarDeviceMode: state.calendarSettings.calendarDeviceMode,\r\n currentDate: state.calendar.currentDate,\r\n startMonth: state.calendar.startDate\r\n }\r\n}\r\n\r\nfunction jumpToMonth(currentDate: moment.Moment, startDate: moment.Moment) {\r\n // Don't scroll if loaded month and the start month of Calendar are same\r\n if (currentDate.month() != startDate.month()) {\r\n let updateMonth = window.setInterval(() => {\r\n if (scrollToMonth(currentDate))\r\n window.clearInterval(updateMonth);\r\n }, 500);\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch): DispatchToProps {\r\n return {\r\n setToGrid: (currentDate?: moment.Moment, startDate?: moment.Moment) => {\r\n dispatch(setToGrid())\r\n if (currentDate != undefined)\r\n jumpToMonth(currentDate, startDate)\r\n },\r\n setToList: (currentDate?: moment.Moment, startDate?: moment.Moment) => {\r\n dispatch(setToList())\r\n if (currentDate != undefined)\r\n jumpToMonth(currentDate, startDate)\r\n }\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CalendarViewToggleBase);","import * as React from 'react';\r\n\r\nimport ClearAllView from 'filter-clear-all.view';\r\nimport { removeAllEventFilters } from '../../redux-state/actions/calendar.actions';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { connect } from 'react-redux';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\n\r\ninterface IFilterExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n}\r\n\r\ninterface DispatchToProps {\r\n removeAllFilters: () => void;\r\n}\r\n\r\nexport type ClearAllProps = IFilterExternalProps & StateToProps & DispatchToProps;\r\n\r\nexport class ClearAllBase extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IFilterExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch): DispatchToProps {\r\n return {\r\n removeAllFilters: () => dispatch(removeAllEventFilters())\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ClearAllBase);","import * as React from 'react';\r\n\r\nimport FiltersContainerView from 'filters-container.view';\r\nimport { CalendarDeviceMode, ICalendarSettings} from '../../classes/calendar';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { connect } from 'react-redux';\r\nimport { findDOMNode } from 'react-dom';\r\n\r\nimport A11yDialog = require('a11y-dialog');\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n deviceMode: CalendarDeviceMode;\r\n filtersAlwaysModal: boolean;\r\n}\r\n\r\ninterface ModalControlMethods {\r\n showModal: () => void;\r\n hideModal: () => void;\r\n}\r\n\r\nexport type FiltersContainerProps = StateToProps;\r\nexport type FiltersContainerViewProps = FiltersContainerProps & ModalControlMethods;\r\n\r\nexport class FiltersContainerBase extends React.Component implements ModalControlMethods {\r\n private dialog;\r\n\r\n constructor(props: FiltersContainerProps) {\r\n super(props);\r\n }\r\n\r\n initializeModal() {\r\n\r\n if (this.dialog) {\r\n this.dialog.create();\r\n } else {\r\n const element = findDOMNode(this);\r\n this.dialog = new A11yDialog(element);\r\n }\r\n }\r\n\r\n destroyModal() {\r\n if (this.dialog) {\r\n // Hide the dialog, then unbind all listeners and finally set to null.\r\n this.dialog.destroy();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.deviceMode === CalendarDeviceMode.MOBILE || this.props.filtersAlwaysModal) {\r\n this.initializeModal();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: FiltersContainerProps) {\r\n if (!this.props.filtersAlwaysModal) {\r\n switch (this.props.deviceMode) {\r\n case CalendarDeviceMode.MOBILE: {\r\n this.initializeModal();\r\n break;\r\n }\r\n default: {\r\n this.destroyModal();\r\n }\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.destroyModal();\r\n }\r\n\r\n showModal() {\r\n if (this.dialog) {\r\n this.dialog.show();\r\n }\r\n }\r\n\r\n hideModal() {\r\n if (this.dialog) {\r\n this.dialog.hide();\r\n }\r\n }\r\n\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState): StateToProps {\r\n return {\r\n text: state.calendarText,\r\n deviceMode: state.calendarSettings.calendarDeviceMode,\r\n filtersAlwaysModal: state.calendarSettings.filtersAlwaysModal\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(FiltersContainerBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\nimport { uniq } from 'lodash';\r\n\r\nimport FilterView from 'filter.view';\r\nimport { IEventFilter, IDay, IOption, IMonth } from '../../classes/calendar';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { upsertEventFilter, removeEventFilter, goToMonth } from '../../redux-state/actions/calendar.actions';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport CalendarApi from '../../common/calendar-api';\r\nimport { connect } from 'react-redux';\r\nimport { generateEventFilter, GetFilterFromQuery } from '../../helpers/filter-by-query'\r\nimport { scrollToMonth, removeLoader, getMonthElement } from '../../helpers/scroll-to-month';\r\n\r\ninterface IFilterExternalProps {\r\n /**\r\n * The property to filter the calendar events by.\r\n */\r\n propertyToFilter: keyof IEvent;\r\n /**\r\n * Text to represent the option for no selection. ie All Venues, All Production\r\n */\r\n noSelectionText: string;\r\n /**\r\n * Name of the filter to be labeled on the app\r\n */\r\n filterName: string;\r\n}\r\n\r\ninterface StateToProps {\r\n hasFilters: boolean;\r\n eventMonths: IMonth[];\r\n selectedValue: string;\r\n /**\r\n * The furthermost month that has been loaded onto the calendar.\r\n */\r\n lastLoadedMonth: moment.Moment;\r\n /**\r\n * The last month that can be loaded onto the calendar.\r\n */\r\n lastMonthToLoad: moment.Moment;\r\n currentFilters: Map;\r\n}\r\n\r\ninterface DispatchToProps {\r\n selectFilter: (selectedValue: string, shouldUpdateQuery: boolean) => void;\r\n goToMonth: (date: moment.Moment) => void;\r\n getFirstOccurenceDateForFilters: (filters: any, lastMonthToLoad: moment.Moment, lastLoadedMonth: moment.Moment) => void;\r\n}\r\n\r\nexport type FilterProps = IFilterExternalProps & StateToProps & DispatchToProps;\r\n\r\ninterface FilterState {\r\n fromApi: boolean;\r\n waitingForApi: boolean;\r\n options: IOption[];\r\n}\r\n\r\nexport type CombinedFilterViewProps = FilterProps & FilterState;\r\n\r\nexport class FiltersBase extends React.Component {\r\n constructor(props: FilterProps) {\r\n super(props);\r\n\r\n this.state = {\r\n fromApi: false,\r\n waitingForApi: true,\r\n options: []\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n CalendarApi.getFiltersFor(this.props.propertyToFilter, this.props.lastMonthToLoad).then(response => {\r\n this.setState({\r\n fromApi: true,\r\n waitingForApi: false,\r\n options: response\r\n });\r\n\r\n if (window.location.search.length > 1) {\r\n GetFilterFromQuery(window.location.search, response, this.props.propertyToFilter,\r\n this.props.lastLoadedMonth, this.props.selectFilter, this.props.goToMonth);\r\n }\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: FilterProps, prevState: FilterState) {\r\n if (!this.state.fromApi && !this.state.waitingForApi && !prevProps.lastLoadedMonth.isSame(this.props.lastLoadedMonth)) {\r\n this.setState({\r\n options: this.calculateOptions(this.props)\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n CalendarApi.cancelFiltersRequest();\r\n }\r\n\r\n private calculateOptions(props: FilterProps): IOption[] {\r\n // flatten events twice because month -> day -> events\r\n const events = ([] as IEvent[]).concat(...props.eventMonths.map(month => ([] as IEvent[]).concat(...month.events.allDays.map(day => day.events))));\r\n\r\n if (events.length > 0) {\r\n if (Array.isArray(events[0][props.propertyToFilter])) {\r\n // These are all casted as any because it's not specifically known what kind of objects this is expected to support.\r\n const allOptions = uniq(([] as any[]).concat(...events.map(event => (event[props.propertyToFilter] as any[]))));\r\n\r\n return allOptions.map(option => {\r\n return {\r\n text: option.toString(),\r\n value: option.toString(),\r\n firstOccurance: \"\"\r\n }\r\n });\r\n }\r\n else {\r\n const mappedProperty = uniq(events.map(event => event[props.propertyToFilter]));\r\n\r\n return mappedProperty.map(eventProperty => {\r\n return {\r\n text: eventProperty.toString(),\r\n value: eventProperty.toString(),\r\n firstOccurance: \"\"\r\n }\r\n });\r\n }\r\n }\r\n\r\n // If empty\r\n return [];\r\n }\r\n\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IFilterExternalProps): StateToProps {\r\n // Find the matched filter to extract the selected value.\r\n let matchedFilter: IEventFilter = null;\r\n\r\n for (let i = 0; i < state.calendar.eventFilter.length; ++i) {\r\n if (state.calendar.eventFilter[i].key === ownProps.propertyToFilter) {\r\n matchedFilter = state.calendar.eventFilter[i];\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n hasFilters: state.calendar.eventFilter.length > 0,\r\n eventMonths: state.calendar.events,\r\n selectedValue: matchedFilter ? matchedFilter.selectedValue : \"\",\r\n lastLoadedMonth: state.calendar.endDate,\r\n lastMonthToLoad: state.calendarSettings.monthsOnCalendar[state.calendarSettings.monthsOnCalendar.length - 1],\r\n currentFilters: new Map(state.calendar.eventFilter.map(filter => [filter.key, filter.selectedValue]) as any)\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch, ownProps: FilterProps): DispatchToProps {\r\n return {\r\n selectFilter: (selectedValue: string, shouldUpdateQuery: boolean) => {\r\n // If the selected value is null or empty string, remove that filter.\r\n if (!selectedValue || selectedValue === \"\") {\r\n dispatch(removeEventFilter(ownProps.propertyToFilter));\r\n } else {\r\n\r\n const filter: IEventFilter = {\r\n key: ownProps.propertyToFilter,\r\n selectedValue: selectedValue,\r\n filter: generateEventFilter(ownProps.propertyToFilter, selectedValue)\r\n }\r\n dispatch(upsertEventFilter(filter, shouldUpdateQuery));\r\n }\r\n },\r\n goToMonth: (date: moment.Moment) => dispatch(goToMonth(date)),\r\n getFirstOccurenceDateForFilters: (filters, lastMonthToLoad, lastLoadedMonth) => {\r\n CalendarApi.getFirstOccurenceForFilters(filters, lastMonthToLoad).then(firstOccuranceDate => {\r\n\r\n // If a month is \r\n if (firstOccuranceDate != null) {\r\n const toMonth = moment(firstOccuranceDate);\r\n\r\n // Only change months if it's in the future.\r\n if (toMonth.isAfter(lastLoadedMonth)) {\r\n dispatch(goToMonth(toMonth))\r\n }\r\n\r\n // If the month has already loaded, apply filter and remove the loader.\r\n // We need a timeout because even though the data is cached, a Promise object is created.\r\n //setTimeout(() => removeLoader(), 500);\r\n var scrollInterval = setInterval(() => {\r\n const monthElement = getMonthElement(toMonth);\r\n\r\n if (monthElement) {\r\n removeLoader();\r\n if (scrollToMonth(toMonth)) {\r\n clearInterval(scrollInterval);\r\n }\r\n }\r\n }, 500);\r\n\r\n } else {\r\n // If the month has already loaded, apply filter and remove the loader.\r\n // We need a timeout because even though the data is cached, a Promise object is created.\r\n setTimeout(() => removeLoader(), 500);\r\n }\r\n }).catch(err => {\r\n console.error(err);\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(FiltersBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, CalendarViewMode, CalendarDeviceMode } from '../../classes/calendar';\r\nimport { connect } from 'react-redux';\r\n\r\nimport GridMonthContainerView from 'grid-month-container.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\n\r\ninterface IGridMonthContainerExternalProps {\r\n\r\n}\r\n\r\ninterface StateToProps {\r\n //currentMoment: moment.Moment;\r\n //calendarViewMode: CalendarViewMode;\r\n //calendarDeviceMode: CalendarDeviceMode;\r\n}\r\n\r\nexport type GridMonthContainerProps = IGridMonthContainerExternalProps & StateToProps;\r\n\r\nexport class GridMonthContainerBase extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\n//function mapStateToProps(state: ICalendarAppState, ownProps: IGridMonthContainerExternalProps): StateToProps {\r\n// return {\r\n// currentMoment: state.calendar.currentDate,\r\n// calendarViewMode: state.calendarSettings.calendarViewMode,\r\n// calendarDeviceMode: state.calendarSettings.calendarDeviceMode\r\n// }\r\n//}\r\n\r\n//export default connect(mapStateToProps)(GridMonthContainerBase);\r\n\r\nexport default GridMonthContainerBase;","import * as React from 'react';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport GridDayView from 'grid-day.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\n\r\ninterface IGridDayExternalProps {\r\n day: IDay;\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type GridDayProps = IGridDayExternalProps & StateToProps;\r\n\r\nexport const GridDayBase: React.StatelessComponent = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState): StateToProps {\r\n return {\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(GridDayBase);","import * as React from 'react';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport GridEventView from 'grid-event.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\n\r\ninterface IGridEventExternalProps {\r\n event: IEvent;\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type GridEventProps = IGridEventExternalProps & StateToProps;\r\n\r\nexport const GridEventBase: React.StatelessComponent = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState): StateToProps {\r\n return {\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(GridEventBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { connect } from 'react-redux';\r\n\r\nimport GridMonthView from 'grid-month.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\n\r\ninterface IGridMonthExternalProps {\r\n monthData: IMonth;\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type GridMonthProps = IGridMonthExternalProps & StateToProps;\r\n\r\nexport class GridMonthBase extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IGridMonthExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(GridMonthBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { connect } from 'react-redux';\r\n\r\nimport GridMonthsView from 'grid-months.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\nimport { IEvent } from '../../custom/classes/event';\r\n\r\ninterface IGridMonthsExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n monthsData: IMonth[];\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type GridMonthsProps = IGridMonthsExternalProps & StateToProps;\r\n\r\nexport class GridMonthsBase extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IGridMonthsExternalProps): StateToProps {\r\n return {\r\n monthsData: state.calendar.events,\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(GridMonthsBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { connect, Dispatch } from 'react-redux';\r\nimport { ICalendarAppState } from '../redux-state';\r\nimport { applyPromoCode } from '../redux-state/actions/calendar-api.actions';\r\n\r\nimport MonthSelectionDropdownView from 'month-selection-dropdown.view';\r\nimport { ICalendarAppText } from '../custom/classes/calendar-text';\r\n\r\nimport { updatePromoCodeString } from '../redux-state/actions/promo-code.actions';\r\nimport { waitForImage, imageHasLoaded } from '../redux-state/actions/lazy-load.actions';\r\n\r\ninterface IExternalProps {\r\n src: string;\r\n}\r\n\r\ninterface StateToProps {\r\n imageIsLoaded: boolean;\r\n}\r\n\r\ninterface DispatchToProps {\r\n waitForImage: () => void;\r\n signalImageLoad: () => void;\r\n}\r\n\r\nexport type LazyImageProps = IExternalProps & StateToProps & DispatchToProps & React.ImgHTMLAttributes;\r\n\r\nexport class LazyImageBase extends React.Component {\r\n constructor(props: LazyImageProps) {\r\n super(props);\r\n\r\n props.waitForImage();\r\n }\r\n\r\n render() {\r\n const { imageIsLoaded, waitForImage, signalImageLoad, ...rest } = this.props;\r\n\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IExternalProps): StateToProps {\r\n return {\r\n imageIsLoaded: state.lazyLoad.imageHasLoaded[ownProps.src],\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch: Dispatch, ownProps: LazyImageProps): DispatchToProps {\r\n return {\r\n waitForImage: () => dispatch(waitForImage(ownProps.src)),\r\n signalImageLoad: () => dispatch(imageHasLoaded(ownProps.src))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(LazyImageBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, CalendarViewMode, CalendarDeviceMode } from '../../classes/calendar';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport ListContainerView from 'list-container.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\n\r\ninterface IListContainerExternalProps {\r\n\r\n}\r\n\r\ninterface StateToProps {\r\n currentMoment: moment.Moment;\r\n calendarViewMode: CalendarViewMode;\r\n calendarDeviceMode: CalendarDeviceMode;\r\n eventCount: number;\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type ListContainerProps = IListContainerExternalProps & StateToProps;\r\n\r\nexport const ListContainerBase: React.StatelessComponent = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IListContainerExternalProps): StateToProps {\r\n return {\r\n currentMoment: state.calendar.currentDate,\r\n calendarViewMode: state.calendarSettings.calendarViewMode,\r\n calendarDeviceMode: state.calendarSettings.calendarDeviceMode,\r\n eventCount: ([] as IEvent[]).concat(...state.calendar.events.map(month => ([] as IEvent[]).concat(...month.events.allDays.map(day => day.events)))).length,\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ListContainerBase);","import * as React from 'react';\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { connect } from 'react-redux';\r\n\r\nimport ListDayView from 'list-day.view';\r\n\r\ninterface IListDayExternalProps {\r\n day: IDay;\r\n}\r\n\r\nexport type ListDayProps = IListDayExternalProps;\r\n\r\nexport class ListDayBase extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ListDayBase;","import * as React from 'react';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\nimport { connect } from 'react-redux';\r\n\r\nimport ListEventView from 'list-event.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\n\r\ninterface IListEventExternalProps {\r\n event: IEvent;\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type ListEventProps = IListEventExternalProps & StateToProps;\r\n\r\nexport const ListEventBase: React.StatelessComponent = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState): StateToProps {\r\n return {\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ListEventBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { connect } from 'react-redux';\r\n\r\nimport ListMonthView from 'list-month.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\ninterface IListMonthExternalProps {\r\n monthData: IMonth;\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type ListMonthProps = IListMonthExternalProps & StateToProps;\r\n\r\nexport class ListMonthBase extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IListMonthExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ListMonthBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { connect } from 'react-redux';\r\n\r\nimport ListMonthsView from 'list-months.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\ninterface IListMonthsExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n monthsData: IMonth[];\r\n text: ICalendarAppText;\r\n}\r\n\r\nexport type ListMonthsProps = IListMonthsExternalProps & StateToProps;\r\n\r\nexport class ListMonthsBase extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IListMonthsExternalProps): StateToProps {\r\n return {\r\n monthsData: state.calendar.events,\r\n text: state.calendarText\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ListMonthsBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { connect, Dispatch } from 'react-redux';\r\nimport { ICalendarAppState } from '../redux-state';\r\nimport { applyPromoCode } from '../redux-state/actions/calendar-api.actions';\r\n\r\nimport MonthSelectionDropdownView from 'month-selection-dropdown.view';\r\nimport { ICalendarAppText } from '../custom/classes/calendar-text';\r\n\r\nimport { updatePromoCodeString } from '../redux-state/actions/promo-code.actions';\r\nimport { waitForImage, imageHasLoaded } from '../redux-state/actions/lazy-load.actions';\r\nimport LoaderView from 'loader.view';\r\n\r\ninterface IExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n isLoading: boolean;\r\n}\r\n\r\ninterface DispatchToProps {\r\n}\r\n\r\nexport type LoaderProps = IExternalProps & StateToProps;\r\n\r\nexport const LoaderBase: React.StatelessComponent = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText,\r\n isLoading: state.calendar.updating\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(LoaderBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\nimport { ICalendarState, IMonth, IDay, CalendarViewMode } from '../../classes/calendar';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { connect, Dispatch } from 'react-redux';\r\n\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { goToMonth } from '../../redux-state/actions/calendar.actions';\r\n\r\nimport MonthSelectionDropdownView from 'month-selection-dropdown.view';\r\n\r\ninterface IMonthSelectionDropdownExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n currentMonth: moment.Moment;\r\n validMonths: moment.Moment[];\r\n}\r\n\r\ninterface DispatchToProps {\r\n goToMonth: (date: moment.Moment) => void;\r\n}\r\n\r\nexport type MonthSelectionDropdownProps = IMonthSelectionDropdownExternalProps & StateToProps & DispatchToProps;\r\n\r\nexport class MonthSelectionDropdownBase extends React.Component {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IMonthSelectionDropdownExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText,\r\n currentMonth: state.calendar.currentDate,\r\n validMonths: state.calendarSettings.monthsOnCalendar\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch: Dispatch): DispatchToProps {\r\n return {\r\n goToMonth: (date: moment.Moment) => dispatch(goToMonth(date))\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MonthSelectionDropdownBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { ICalendarState, IMonth, IDay } from '../../classes/calendar';\r\nimport { connect, Dispatch } from 'react-redux';\r\n\r\nimport LoadMoreView from 'month-selection-load-more.view';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { nextMonth } from '../../redux-state/actions/calendar.actions';\r\n\r\ninterface ILoadMoreExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n currDate: moment.Moment;\r\n lastDate: moment.Moment;\r\n}\r\n\r\ninterface DispatchToProps {\r\n goToNextMonth: () => void;\r\n}\r\n\r\nexport type LoadMoreProps = ILoadMoreExternalProps & StateToProps & DispatchToProps;\r\n\r\nexport class LoadMoreBase extends React.Component {\r\n render() {\r\n return (\r\n <>\r\n {\r\n this.props.currDate.clone().endOf(\"month\").isSameOrBefore(this.props.lastDate) ? : null\r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: ILoadMoreExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText,\r\n currDate: state.calendar.currentDate,\r\n lastDate: state.calendarSettings.monthsOnCalendar[state.calendarSettings.monthsOnCalendar.length - 1] || moment()\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch: Dispatch): DispatchToProps {\r\n return {\r\n goToNextMonth: () => dispatch(nextMonth())\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(LoadMoreBase);","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport ScrollToTopView from 'scroll-to-top';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { throttle } from 'lodash';\r\n\r\ninterface IExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n appearanceOffset: number;\r\n}\r\n\r\ninterface IScrollToTopBase {\r\n scrollToTop: () => void;\r\n}\r\n\r\ninterface IScrollToTopState {\r\n showButton: boolean;\r\n}\r\n\r\ntype ScrollToTopProps = IExternalProps & StateToProps\r\nexport type CombinedScrollToTopProps = ScrollToTopProps & IScrollToTopBase & IScrollToTopState;\r\n\r\nexport class ScrollToTopBase extends React.Component implements IScrollToTopBase {\r\n public showButton = false;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showButton: false\r\n }\r\n }\r\n\r\n scrollToTop() {\r\n if (!window.matchMedia('(prefers-reduced-motion: true)').matches) {\r\n document.querySelector('body').scrollIntoView({\r\n behavior: \"smooth\"\r\n });\r\n } else {\r\n document.querySelector('body').scrollIntoView();\r\n }\r\n }\r\n\r\n checkScroll() {\r\n this.setState({\r\n showButton: window.pageYOffset > this.props.appearanceOffset\r\n })\r\n }\r\n\r\n private boundScroll = throttle(this.checkScroll.bind(this), 50);\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.boundScroll.bind(this));\r\n }\r\n\r\n componentDidMount() {\r\n this.checkScroll();\r\n window.addEventListener('scroll', this.boundScroll);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState): StateToProps {\r\n return {\r\n appearanceOffset: state.calendarSettings.scrollToTopAppearanceOffset\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ScrollToTopBase);","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { connect, Dispatch } from 'react-redux';\r\nimport { ICalendarAppState } from '../redux-state';\r\nimport { applyPromoCode, removePromoCode } from '../redux-state/actions/calendar-api.actions';\r\n\r\nimport { ICalendarAppText } from '../custom/classes/calendar-text';\r\nimport PromoCodeView from 'promo-code.view';\r\nimport { updatePromoCodeString, ShowPromoComponent } from '../redux-state/actions/promo-code.actions';\r\n\r\ninterface IPromoCodeExternalProps {\r\n}\r\n\r\ninterface StateToProps {\r\n text: ICalendarAppText;\r\n show: boolean;\r\n showPromoResult: boolean;\r\n promoCode: string;\r\n}\r\n\r\ninterface DispatchToProps {\r\n submitPromoCode: (evt) => void;\r\n removePromoCode: (evt) => void;\r\n updatePromoCodeString: (promoCode: string) => void; \r\n onClose: (hide: boolean) => void;\r\n}\r\n\r\nexport type PromoCodeProps = IPromoCodeExternalProps & StateToProps & DispatchToProps;\r\n\r\nexport class PromoCodeBase extends React.Component { \r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: IPromoCodeExternalProps): StateToProps {\r\n return {\r\n text: state.calendarText,\r\n show: state.promoCode.showPromo,\r\n showPromoResult: state.promoCode.promoApiResponse != null,\r\n promoCode: state.promoCode.appliedPromoCode\r\n }\r\n}\r\n\r\n\r\n\r\nfunction mapDispatchToProps(dispatch: Dispatch, ownProps: PromoCodeProps): DispatchToProps {\r\n return {\r\n submitPromoCode: (evt: any) => {\r\n evt.preventDefault();\r\n dispatch(applyPromoCode() as any)\r\n },\r\n removePromoCode: (evt: any) => {\r\n evt.preventDefault();\r\n dispatch(removePromoCode() as any)\r\n },\r\n updatePromoCodeString: (promoCode: string) => dispatch(updatePromoCodeString(promoCode) as any),\r\n onClose: (show: boolean) => dispatch(ShowPromoComponent(show) as any)\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PromoCodeBase);","import * as React from 'react';\r\n\r\nimport MediaQuery from 'react-responsive';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { setToDesktop } from '../../redux-state/actions/calendar-settings.actions';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface DispatchToProps {\r\n setToDesktop: () => void;\r\n}\r\n\r\ntype ResponsiveProps = DispatchToProps;\r\n\r\nexport class DesktopResponsiveBase extends React.Component {\r\n\r\n componentWillMount() {\r\n this.props.setToDesktop();\r\n }\r\n\r\n /**\r\n * No need to render anything, since the lifecycle events handle that stuff.\r\n */\r\n render() {\r\n return null\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch): DispatchToProps {\r\n return {\r\n setToDesktop: () => dispatch(setToDesktop())\r\n }\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(DesktopResponsiveBase);","import * as React from 'react';\r\n\r\nimport MediaQuery from 'react-responsive';\r\nimport { ICalendarAppState } from '../../redux-state';\r\n\r\n\r\nimport MobileResponsive from './mobile';\r\nimport DesktopResponsive from './desktop';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface StateToProps {\r\n mediaWidth: string;\r\n}\r\n\r\ninterface DispatchToProps {\r\n\r\n}\r\n\r\ntype ResponsiveProps = StateToProps & DispatchToProps;\r\n\r\nexport class ResponsiveBase extends React.Component {\r\n //private plusOneWidth: number;\r\n //private unit: string;\r\n\r\n //private computeMediaQueries(props: ResponsiveProps) {\r\n // this.plusOneWidth = parseInt(props.mediaWidth.replace(/[^\\d*\\.?\\d*]/g, ''));\r\n // this.unit = props.mediaWidth.replace(/[\\d*\\.?\\d*]/g, '');\r\n\r\n // // Set the 1 offset depending on the unit of measurement.\r\n // if (this.unit === \"rem\") {\r\n // this.plusOneWidth += 0.01;\r\n // } else if (this.unit === \"px\") {\r\n // this.plusOneWidth += 1;\r\n // }\r\n //}\r\n\r\n //constructor(props: ResponsiveProps) {\r\n // super(props);\r\n\r\n // this.computeMediaQueries(props);\r\n //}\r\n\r\n //componentDidUpdate(prevProps: ResponsiveProps) {\r\n // this.computeMediaQueries(this.props);\r\n //}\r\n\r\n render() {\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState): StateToProps {\r\n return {\r\n mediaWidth: state.calendarSettings.desktopToMobileTransitionWidth\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(ResponsiveBase);","import * as React from 'react';\r\n\r\nimport MediaQuery from 'react-responsive';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport { setToMobile } from '../../redux-state/actions/calendar-settings.actions';\r\nimport { connect } from 'react-redux';\r\n\r\n\r\ninterface DispatchToProps {\r\n setToMobile: () => void;\r\n}\r\n\r\ntype ResponsiveProps = DispatchToProps;\r\n\r\nexport class MobileResponsiveBase extends React.Component {\r\n\r\n componentWillMount() {\r\n this.props.setToMobile();\r\n }\r\n\r\n /**\r\n * No need to render anything, since the lifecycle events handle that stuff.\r\n */\r\n render() {\r\n return null\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch): DispatchToProps {\r\n return {\r\n setToMobile: () => dispatch(setToMobile())\r\n }\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(MobileResponsiveBase);","import { ICalendarAppBaseText, defaultBaseText } from \"../../classes/calendar-text\";\r\n\r\n/**\r\n * Want to add more text? Go to custom/classes/calendar-text and add new properties there.\r\n */\r\ninterface ICalendarCustomText {\r\n}\r\n\r\n\r\nlet customText: ICalendarCustomText = {\r\n}\r\n\r\nexport type ICalendarAppText = ICalendarCustomText & ICalendarAppBaseText;\r\nexport const defaultText: ICalendarAppText = { ...defaultBaseText, ...customText };","import * as moment from 'moment';\r\nimport { IEventFilter, ICalendarState, IOption } from '../classes/calendar';\r\nimport { IEvent } from '../custom/classes/event';\r\nimport filter from '../components/filters/filter';\r\nimport { upsertEventFilter } from '../redux-state/actions/calendar.actions';\r\nimport { Store, Dispatch } from 'redux';\r\nimport { getMonthElement, scrollToMonth, removeLoader } from './scroll-to-month';\r\n\r\n\r\nexport function UpdateFilterQuery(eventFilters: Array): void {\r\n const serialized = serializeProps(eventFilters);\r\n if (serialized.length > 0) {\r\n let newurl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + encodeURI(serialized);\r\n window.history.pushState({ path: newurl }, '', newurl);\r\n }\r\n else if (window.location.search.length > 0) {\r\n let newUrl = window.location.href.split('?')[0]\r\n window.history.pushState({ path: newUrl }, document.title, newUrl);\r\n }\r\n}\r\n\r\nexport function GetFilterFromQuery(search: string, filterOptions: Array,\r\n filterToGet: string, lastLoadedMonth: moment.Moment, selectFiltersFunction:(filter, shouldUpdateQuery)=> any, goToMonthFunction: (toMonth) => any): void {\r\n // Remove hash added for Month scrolling\r\n if (search.substr(1).length > 0) {\r\n let queries = decodeURI(search.substr(1)).split('&');\r\n\r\n var matchedQuery = queries.filter(q => q.indexOf(filterToGet) == 0)[0];\r\n\r\n if (matchedQuery) {\r\n let value = matchedQuery.split('=')[1];\r\n\r\n selectFiltersFunction(value, false);\r\n\r\n var matchedFilter = filterOptions.filter(o => o.value === value)[0];\r\n\r\n if (matchedFilter) {\r\n const firstOccuranceDate = matchedFilter.firstOccurance;\r\n\r\n // If a month is \r\n if (firstOccuranceDate) {\r\n const toMonth = moment(firstOccuranceDate);\r\n\r\n // Only change months if it's in the future.\r\n if (toMonth.isAfter(lastLoadedMonth)) {\r\n goToMonthFunction(toMonth);\r\n var scrollInterval = setInterval(() => {\r\n const monthElement = getMonthElement(toMonth);\r\n\r\n if (monthElement) {\r\n removeLoader();\r\n if (scrollToMonth(toMonth)) {\r\n clearInterval(scrollInterval);\r\n }\r\n }\r\n }, 500);\r\n } else {\r\n // If the month has already loaded, apply filter and remove the loader.\r\n // We need a timeout because even though the data is cached, a Promise object is created.\r\n //setTimeout(() => removeLoader(), 500);\r\n var scrollInterval = setInterval(() => {\r\n const monthElement = getMonthElement(toMonth);\r\n\r\n if (monthElement) {\r\n removeLoader();\r\n if (scrollToMonth(toMonth)) {\r\n clearInterval(scrollInterval);\r\n }\r\n }\r\n }, 500);\r\n }\r\n\r\n } else {\r\n // If the month has already loaded, apply filter and remove the loader.\r\n // We need a timeout because even though the data is cached, a Promise object is created.\r\n setTimeout(() => removeLoader(), 500);\r\n }\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nfunction serializeProps(eventFilter: Array): string {\r\n if (eventFilter.length < 1)\r\n return \"\";\r\n\r\n return \"?\" + eventFilter.map(filter => filter.key + \"=\" + filter.selectedValue).join(\"&\");\r\n}\r\n\r\n\r\nexport function generateEventFilter(propertyToFilter: string, selectedValue: string) {\r\n return (event: IEvent) => {\r\n const propertyValue = event[propertyToFilter];\r\n // If it's an array, check if the value exists inside\r\n if (propertyValue.constructor === Array) {\r\n return (propertyValue as any[]).some(item => item === selectedValue);\r\n } else {\r\n return event[propertyToFilter] === selectedValue\r\n }\r\n }\r\n}\r\n","import * as moment from 'moment';\r\nimport { CalendarViewMode } from '../classes/calendar-settings';\r\n\r\n/**\r\n * Scroll to the month and set focus. This will also remove the loader.\r\n * @param month\r\n * @param viewMode\r\n */\r\nexport function scrollToMonth(month: moment.Moment): boolean {\r\n const mmtId = getMonthElementFromMoment(month);\r\n\r\n const destinationMonth = getMonthElement(month);\r\n let destinationId: string = \"\";\r\n if (destinationMonth) {\r\n if (destinationMonth.id.indexOf(\"Month-List-\") > -1) {\r\n destinationId = `Month-List-${mmtId}`;\r\n } else {\r\n destinationId = `Month-${mmtId}`;\r\n }\r\n document.getElementById(destinationId).scrollIntoView();\r\n removeLoader();\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction getMonthElementFromMoment(month: moment.Moment): string {\r\n return month.startOf(\"month\").format(\"X\");\r\n}\r\n\r\nexport function getMonthElement(month: moment.Moment): HTMLElement {\r\n const key = getMonthElementFromMoment(month);\r\n return document.getElementById(`Month-${key}`) || document.getElementById(`Month-List-${key}`);\r\n}\r\n\r\n/**\r\n * Call this function to remove the loader. Note this isn't tied into redux or anything because of the scroll-to-month requiring\r\n * the month to load first and the hash set before disappearing.\r\n */\r\nexport function removeLoader() {\r\n // attribute is added in the calendar-container component when loading state is triggered\r\n document.documentElement.removeAttribute(\"data-calendar-loading\");\r\n}","import * as React from 'react';\r\nimport { render } from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { appStore } from './redux-state';\r\nimport App from './components/app';\r\n\r\n\r\nrender(\r\n \r\n \r\n \r\n , document.getElementById(\"calendar-entry-js\"));","import * as moment from 'moment';\r\n\r\nimport { ICalendarState, IMonth } from \"../../classes/calendar\";\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport CalendarApi from \"../../common/calendar-api\";\r\nimport { ICalendarAppState } from \"..\";\r\nimport { updateEvents, requestEvents, eventError } from './calendar.actions';\r\nimport { create } from '../../common/calendar';\r\nimport { requestText, receiveText, errorApiText } from './calendar-text.actions';\r\nimport { requestPromoCodeApply, errorPromoCodeApply, receivePromoCodeApplyResponse, requestPromoCodeRemove, errorPromoCodeRemove, receivePromoCodeRemoveResponse, receivePromoCodeGetResponse } from './promo-code.actions';\r\n\r\n/**\r\n * Generate a key using the input date object.\r\n * @param date\r\n */\r\nfunction generateKey(date: moment.Moment) {\r\n return `${date.year().toString()},${date.month().toString()}`\r\n}\r\n\r\n/**\r\n * Dispatch this action to get the latest set of events from the API.\r\n */\r\nexport function getEventsFromApi() {\r\n return (dispatch, getState: () => ICalendarAppState) => {\r\n const currState = getState();\r\n\r\n if (!currState.calendar.updating) {\r\n dispatch(requestEvents());\r\n }\r\n\r\n return CalendarApi.getEvents(currState.calendar, currState.calendarSettings).then(events => {\r\n const filteredEvents = events.filter(currState.calendar.filterFunction);\r\n\r\n // Contains all of the events categorized by the month it lives in.\r\n let byMonth: { [month: string]: IEvent[] } = {};\r\n\r\n filteredEvents.forEach(event => {\r\n const momentObj = moment(event.eventDate);\r\n\r\n if (currState.calendarSettings.loadWrappingMonthDates) {\r\n const startOfWeek = momentObj.clone().startOf(\"week\");\r\n\r\n /*\r\n * If the month idx of the first day of the week is larger, it's next month. This is\r\n * also true if the end of the week is in the next year.\r\n */\r\n if ((startOfWeek.month() < momentObj.month() || startOfWeek.year() < momentObj.year())) {\r\n const secondMonth = momentObj.clone().subtract(1, \"month\");\r\n\r\n if (generateKey(secondMonth) in byMonth) {\r\n byMonth[generateKey(secondMonth)].push(event);\r\n } else {\r\n byMonth[generateKey(secondMonth)] = [event];\r\n }\r\n }\r\n }\r\n\r\n if (generateKey(momentObj) in byMonth) {\r\n byMonth[generateKey(momentObj)].push(event);\r\n } else {\r\n byMonth[generateKey(momentObj)] = [event];\r\n }\r\n });\r\n\r\n // Create an array for all months between the start and the end date. This is to fill in \"missing\" months.\r\n let allMonths: Array = [];\r\n for (let i = currState.calendar.startDate.clone(); i.isBefore(currState.calendar.endDate); i.add(1, \"month\")) {\r\n allMonths.push(i.clone());\r\n }\r\n\r\n const monthsToEvents: IMonth[] = allMonths.map(monthMoment => {\r\n let evts = byMonth[generateKey(monthMoment)];\r\n\r\n // Don't let evts be undefined, at worst, it should be an empty array.\r\n if (!evts)\r\n evts = [];\r\n\r\n return {\r\n monthMoment: monthMoment,\r\n events: create({\r\n events: evts,\r\n month: monthMoment.month(),\r\n year: monthMoment.year(),\r\n weekdayNames: ['S', 'M', 'T', 'W', 'T', 'F', 'S']\r\n })\r\n }\r\n });\r\n\r\n dispatch(updateEvents(monthsToEvents ? monthsToEvents : []))\r\n }).catch(err => {\r\n dispatch(eventError(err));\r\n });\r\n }\r\n}\r\n\r\nexport function getText(culture = \"\") {\r\n return (dispatch, getState: () => ICalendarAppState) => {\r\n dispatch(requestText());\r\n\r\n return CalendarApi.getText(culture).then(result => {\r\n dispatch(receiveText(result));\r\n }).catch(err => {\r\n dispatch(errorApiText(err));\r\n });\r\n }\r\n}\r\n\r\nexport function removePromoCode() {\r\n return (dispatch, getState: () => ICalendarAppState) => {\r\n const state = getState();\r\n\r\n dispatch(requestPromoCodeRemove());\r\n\r\n return CalendarApi.removePromoCode().then(apiResult => {\r\n dispatch(receivePromoCodeRemoveResponse(apiResult));\r\n }).catch(error => {\r\n dispatch(errorPromoCodeRemove(error));\r\n });\r\n }\r\n}\r\n\r\nexport function applyPromoCode() {\r\n return (dispatch, getState: () => ICalendarAppState) => {\r\n const state = getState();\r\n\r\n dispatch(requestPromoCodeApply());\r\n\r\n return CalendarApi.applyPromoCode(state.promoCode.promoCodeString).then(apiResult => {\r\n dispatch(receivePromoCodeApplyResponse(state.promoCode.promoCodeString, apiResult));\r\n }).catch(error => {\r\n dispatch(errorPromoCodeApply(error));\r\n });\r\n }\r\n}","import { ActionType } from \"../../classes/calendar-actions\";\r\nimport { ICalendarSettings } from \"../../classes/calendar\";\r\n\r\nexport function updateCalendarSettings(newSettings: ICalendarSettings) {\r\n return {\r\n type: ActionType.UpdateSettings,\r\n value: newSettings\r\n }\r\n}\r\n\r\n/**\r\n * Dispatch this to set the application state to MOBILE mode.\r\n */\r\nexport function setToMobile() {\r\n return {\r\n type: ActionType.SetToMobile\r\n }\r\n}\r\n\r\n/**\r\n * Dispatch this to set the application state to DESKTOP mode.\r\n */\r\nexport function setToDesktop() {\r\n return {\r\n type: ActionType.SetToDesktop\r\n }\r\n}\r\n\r\nexport function setToGrid() {\r\n return {\r\n type: ActionType.SetToGrid\r\n }\r\n}\r\n\r\nexport function setToList() {\r\n return {\r\n type: ActionType.SetToList\r\n }\r\n}","import { ActionType } from \"../../classes/calendar-actions\";\r\nimport { ICalendarAppText } from '../../custom/classes/calendar-text';\r\n\r\n\r\nexport function requestText() {\r\n return {\r\n type: ActionType.RequestText\r\n }\r\n}\r\n\r\nexport function receiveText(text: ICalendarAppText) {\r\n return {\r\n type: ActionType.ReceiveText,\r\n value: text\r\n }\r\n}\r\n\r\nexport function errorApiText(error: any) {\r\n return {\r\n type: ActionType.ErrorApiText,\r\n value: error\r\n }\r\n}","import * as moment from 'moment';\r\n\r\nimport { ActionType } from '../../classes/calendar-actions';\r\nimport { IEventFilter, IMonth } from '../../classes/calendar';\r\nimport { IEvent } from '../../custom/classes/event';\r\nimport { removeLoader } from '../../helpers/scroll-to-month';\r\n\r\n/**\r\n * Go to the next month. If necessary, will load data.\r\n */\r\nexport function nextMonth() {\r\n return {\r\n type: ActionType.NextMonth\r\n }\r\n}\r\n\r\n/**\r\n * Go to the last month. If necessary, will load data.\r\n */\r\nexport function previousMonth() {\r\n return {\r\n type: ActionType.PreviousMonth\r\n }\r\n}\r\n\r\nexport function requestEvents() {\r\n return {\r\n type: ActionType.RequestEvents\r\n }\r\n}\r\n\r\n/**\r\n * Use only after events have been updated.\r\n */\r\nexport function eventsUpdated() {\r\n return {\r\n type: ActionType.EventUpdated\r\n }\r\n}\r\n\r\nexport function eventError(err: any) {\r\n return {\r\n type: ActionType.EventApiError,\r\n value: err\r\n }\r\n}\r\n\r\n/**\r\n * Update the events being stored in the redux state.\r\n * @param events\r\n */\r\nexport function updateEvents(events: IMonth[]) {\r\n return {\r\n type: ActionType.UpdateEvents,\r\n value: events\r\n }\r\n}\r\n\r\n/**\r\n * Add a number of days to the existing calendar. Will not alter currentDate.\r\n * @param numberOfDays \r\n * @param extendDays \r\n */\r\nexport function addDays(numberOfDays: number, extendDays: boolean = false) {\r\n return {\r\n type: ActionType.AddDays,\r\n value: { numberOfDays, extendDays }\r\n }\r\n}\r\n\r\n/**\r\n * Set the startDate and endDate to be the start and end of the input month.\r\n * @param month \r\n */\r\nexport function setMonth(month: moment.Moment) {\r\n return {\r\n type: ActionType.SetMonth,\r\n value: month\r\n }\r\n}\r\n\r\n/**\r\n * Go to the specified month. Will adjust startDate / endDate so that the input month is in the range.\r\n * @param month \r\n */\r\nexport function goToMonth(month: moment.Moment) {\r\n return {\r\n type: ActionType.GoToMonth,\r\n value: month\r\n }\r\n}\r\n\r\nexport function setDates(startDate: moment.Moment, endDate: moment.Moment) {\r\n return {\r\n type: ActionType.SetDates,\r\n value: { startDate, endDate }\r\n }\r\n}\r\n\r\nexport function upsertEventFilter(filterFunction: IEventFilter, shouldUpdateQuery: boolean) {\r\n return {\r\n type: ActionType.UpdateEventFilter,\r\n value: {\r\n function:\r\n filterFunction,\r\n shouldUpdateQuery: shouldUpdateQuery\r\n }\r\n }\r\n}\r\n\r\nexport function removeEventFilter(filterKey: string) {\r\n return {\r\n type: ActionType.RemoveEventFilter,\r\n value: filterKey\r\n }\r\n}\r\n\r\nexport function removeAllEventFilters() {\r\n return {\r\n type: ActionType.RemoveAllEventFilters\r\n }\r\n}\r\n\r\nexport function changeProductionSeasonFilter(filter: number) {\r\n return {\r\n type: ActionType.ChangeProductionSeasonFilter,\r\n value: filter\r\n }\r\n}","import { ActionType } from \"../../classes/calendar-actions\";\r\n\r\n/**\r\n * Dispatch this when you wish to listen to an image being loaded.\r\n * @param src\r\n */\r\nexport function waitForImage(src: string) {\r\n return {\r\n type: ActionType.WaitForImage,\r\n value: src\r\n } \r\n}\r\n\r\n/**\r\n * Once the onLoad function is triggered on an img, dispatch this.\r\n * @param src\r\n */\r\nexport function imageHasLoaded(src: string) {\r\n return {\r\n type: ActionType.ImageHasLoaded,\r\n value: src\r\n }\r\n}","import { ActionType } from '../../classes/calendar-actions';\r\nimport { IPromoCodeDetail } from '../../classes/promo-code';\r\n\r\n\r\nexport function requestPromoCodeApply() {\r\n return {\r\n type: ActionType.RequestPromoCodeApply\r\n }\r\n}\r\n\r\nexport function requestPromoCodeRemove() {\r\n return {\r\n type: ActionType.RequestPromoCodeRemove\r\n }\r\n}\r\n\r\nexport function updatePromoCodeString(promoCode: string) {\r\n return {\r\n type: ActionType.UpdatePromoCode,\r\n value: promoCode\r\n }\r\n}\r\n\r\nexport function ShowPromoComponent(show: boolean) {\r\n return {\r\n type: ActionType.ShowPromo,\r\n value: show\r\n }\r\n}\r\n\r\nexport function receivePromoCodeApplyResponse(promoCode: string, apiData: any) {\r\n return {\r\n type: ActionType.ReceivePromoCodeApply,\r\n value: {\r\n promoCode: promoCode,\r\n apiResponse: apiData\r\n }\r\n }\r\n}\r\n\r\nexport function receivePromoCodeRemoveResponse(apiData: any) {\r\n return {\r\n type: ActionType.ReceivePromoCodeRemove,\r\n value: { \r\n apiResponse: apiData\r\n }\r\n }\r\n}\r\n\r\nexport function receivePromoCodeGetResponse(promoCodeDetail: IPromoCodeDetail) {\r\n return {\r\n type: ActionType.ReceivePromoCodeGet,\r\n value: {\r\n apiResponse: promoCodeDetail\r\n }\r\n }\r\n}\r\n\r\n\r\nexport function errorPromoCodeApply(error: any) {\r\n return {\r\n type: ActionType.ErrorPromoCodeApply,\r\n value: {\r\n apiResponse: error\r\n }\r\n }\r\n}\r\n\r\nexport function errorPromoCodeRemove(apiData: any) {\r\n return {\r\n type: ActionType.ErrorPromoCodeRemove,\r\n value: {\r\n apiResponse: apiData\r\n }\r\n }\r\n}","import { combineReducers, createStore, applyMiddleware } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport * as moment from 'moment';\r\n\r\nimport calendarReducer from './reducers/calendar.reducer';\r\nimport { ICalendarState, ICalendarSettings, defaultCalendarSettings } from '../classes/calendar';\r\nimport { ICalendarAppText } from '../custom/classes/calendar-text';\r\nimport { IEvent } from '../custom/classes/event';\r\nimport { eventsUpdated } from './actions/calendar.actions';\r\n\r\nimport calendarSettingsReducer from './reducers/calendar-settings.reducer';\r\nimport { getEventsFromApi, getText } from './actions/calendar-api.actions';\r\nimport calendarTextReducer from './reducers/calendar-text.reducer';\r\nimport { IPromoCodeState } from '../classes/promo-code';\r\nimport promoCodeReducer from './reducers/promo-code.reducer';\r\nimport { receiveText } from './actions/calendar-text.actions';\r\nimport { ILazyLoadState } from '../classes/lazy-load';\r\nimport lazyLoadReducer from './reducers/lazy-load.reducer';\r\nimport { GetFilterFromQuery, UpdateFilterQuery } from '../helpers/filter-by-query';\r\nimport { updateCalendarSettings } from './actions/calendar-settings.actions';\r\ndeclare const lastDate: string;\r\ndeclare const pageData: string;\r\ndeclare const promoCode: string;\r\nconst lastDateMoment = moment(lastDate);\r\n\r\nexport interface ICalendarAppState {\r\n calendar: ICalendarState;\r\n calendarSettings: ICalendarSettings;\r\n calendarText: ICalendarAppText;\r\n promoCode: IPromoCodeState;\r\n lazyLoad: ILazyLoadState;\r\n}\r\n\r\nconst appReducer = combineReducers({\r\n calendar: calendarReducer,\r\n calendarSettings: calendarSettingsReducer,\r\n calendarText: calendarTextReducer,\r\n promoCode: promoCodeReducer,\r\n lazyLoad: lazyLoadReducer\r\n});\r\n\r\n// Calculate the months that are valid on the calendar.\r\nlet monthsOnCalendar: moment.Moment[] = [];\r\n\r\nfor (let i = moment().clone().startOf(\"month\"); i.isSameOrBefore(lastDateMoment.endOf(\"month\")); i.add(1, \"month\")) {\r\n monthsOnCalendar.push(i.clone());\r\n}\r\n\r\nlet calendarSettings = {\r\n ...defaultCalendarSettings,\r\n monthsOnCalendar: monthsOnCalendar\r\n};\r\n\r\nconst appStore = createStore(appReducer, {\r\n calendarSettings: calendarSettings\r\n}, applyMiddleware(thunk));\r\n\r\n\r\n//if (window.location.search.length > 1) {\r\n// GetFilterFromQuery(window.location.search, appStore);\r\n//}\r\n\r\n// redux-thunk messes with redux typings.\r\nappStore.dispatch(getEventsFromApi() as any);\r\n\r\nappStore.dispatch(receiveText(pageData as any));\r\n\r\nappStore.dispatch(updateCalendarSettings(JSON.parse(promoCode)) as any);\r\n\r\nlet prevState = appStore.getState();\r\n\r\nappStore.subscribe(() => {\r\n const currState = appStore.getState();\r\n\r\n const apiUpdate = !prevState.calendar.startDate.isSame(currState.calendar.startDate) || !prevState.calendar.endDate.isSame(currState.calendar.endDate);\r\n\r\n // If the event references are completely different, re-calculate them.\r\n if (apiUpdate || (currState.calendar.updating && prevState.calendar.events !== currState.calendar.events)) {\r\n prevState = appStore.getState();\r\n\r\n appStore.dispatch(getEventsFromApi() as any);\r\n }\r\n});\r\n\r\nexport { appStore };","import { ICalendarSettings, defaultCalendarSettings, CalendarDeviceMode, CalendarViewMode } from '../../classes/calendar';\r\nimport { ActionType, ICalendarStateAction } from '../../classes/calendar-actions';\r\n\r\nimport * as moment from 'moment';\r\n\r\n/**\r\n * Returns the new search state given a particular action. This where all of the application\r\n * logic resides.\r\n */\r\nexport default function calendarSettingsReducer(state: ICalendarSettings = defaultCalendarSettings, action: ICalendarStateAction) {\r\n switch (action.type) {\r\n case ActionType.UpdateSettings: {\r\n return { ...state, ...action.value } as ICalendarSettings;\r\n }\r\n case ActionType.SetToDesktop: {\r\n return { ...state, calendarDeviceMode: CalendarDeviceMode.DESKTOP } as ICalendarSettings;\r\n }\r\n case ActionType.SetToMobile: {\r\n return { ...state, calendarDeviceMode: CalendarDeviceMode.MOBILE, calendarViewMode: CalendarViewMode.LIST } as ICalendarSettings;\r\n }\r\n case ActionType.SetToGrid: {\r\n return { ...state, calendarViewMode: CalendarViewMode.GRID } as ICalendarSettings;\r\n }\r\n case ActionType.SetToList: {\r\n return { ...state, calendarViewMode: CalendarViewMode.LIST } as ICalendarSettings;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { ICalendarSettings, defaultCalendarSettings } from '../../classes/calendar';\r\nimport { ICalendarAppText, defaultText } from '../../custom/classes/calendar-text';\r\nimport { ActionType, ICalendarStateAction } from '../../classes/calendar-actions';\r\n\r\n/**\r\n * Returns the new search state given a particular action. This where all of the application\r\n * logic resides.\r\n */\r\nexport default function calendarTextReducer(state: ICalendarAppText = defaultText, action: ICalendarStateAction) {\r\n switch (action.type) {\r\n case ActionType.RequestText: {\r\n return { ...state, requesting: true } as ICalendarAppText;\r\n }\r\n case ActionType.ReceiveText: {\r\n return { ...state, ...action.value, requesting: false, apiError: null } as ICalendarAppText;\r\n }\r\n case ActionType.ErrorApiText: {\r\n console.log(action.value);\r\n\r\n return { ...state, ...action.value, requesting: false, apiError: action.value } as ICalendarAppText;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { IMonth, ICalendarState, IEventFilter, defaultCalendarModel } from '../../classes/calendar';\r\nimport { IEvent } from '../../custom/classes/event';\r\n\r\nimport { ActionType, ICalendarStateAction } from '../../classes/calendar-actions';\r\n\r\nimport * as moment from 'moment';\r\nimport { UpdateFilterQuery } from '../../helpers/filter-by-query';\r\n\r\n/**\r\n * Returns the new search state given a particular action. This where all of the application\r\n * logic resides.\r\n */\r\nexport default function calendarReducer(state: ICalendarState = defaultCalendarModel, action: ICalendarStateAction) {\r\n switch (action.type) {\r\n case ActionType.RequestEvents: {\r\n return { ...state, updating: true } as ICalendarState;\r\n }\r\n case ActionType.UpdateEventFilter: {\r\n const updating = true;\r\n const addedFilterFunction = action.value.function;\r\n\r\n var eventFilter: IEventFilter[] = null;\r\n if (state.eventFilter.some(filter => { return filter.key === addedFilterFunction.key })) {\r\n eventFilter = state.eventFilter.filter(filter => !(filter.key === addedFilterFunction.key)).concat([addedFilterFunction]);\r\n } else {\r\n eventFilter = state.eventFilter.concat([addedFilterFunction])\r\n }\r\n const filterFunction = (event) => eventFilter.map(fil => { return fil.filter; }).every(f => f(event));\r\n\r\n if (action.value.shouldUpdateQuery) {\r\n UpdateFilterQuery(eventFilter);\r\n }\r\n\r\n return { ...state, eventFilter, filterFunction, updating } as ICalendarState;\r\n }\r\n\r\n case ActionType.RemoveEventFilter: {\r\n const eventFilter = state.eventFilter.filter(filter => filter.key !== action.value);\r\n const filterFunction = (event: IEvent) => eventFilter.map(filter => filter.filter).every(func => func(event));\r\n\r\n UpdateFilterQuery(eventFilter);\r\n\r\n return { ...state, eventFilter, filterFunction, updating: true } as ICalendarState;\r\n }\r\n\r\n case ActionType.RemoveAllEventFilters: {\r\n return { ...state, eventFilter: [], filterFunction: (event: IEvent) => true, updating: true } as ICalendarState;\r\n }\r\n\r\n case ActionType.EventApiError: {\r\n return { ...state, updating: false, apiError: action.value } as ICalendarState;\r\n }\r\n\r\n case ActionType.ChangeProductionSeasonFilter: {\r\n const productionSeasonFilter = action.value as number;\r\n const updating = true;\r\n return { ...state, productionSeasonFilter, updating } as ICalendarState;\r\n }\r\n case ActionType.NextMonth: {\r\n // state.startDate.add(1, 'month').startOf('month');\r\n let newEndDate = state.endDate.clone().add(1, 'month').endOf('month');\r\n let newCurrMoment = state.currentDate.clone().add(1, \"month\");\r\n\r\n if (newCurrMoment.isAfter(state.endDate)) {\r\n return { ...state, updating: true, specificDates: false, currentDate: newCurrMoment, endDate: newEndDate } as ICalendarState;\r\n }\r\n\r\n return { ...state, currentDate: newCurrMoment } as ICalendarState;\r\n }\r\n case ActionType.UpdateEvents: {\r\n const events = action.value as Array>;\r\n\r\n return { ...state, updating: false, events: events } as ICalendarState;\r\n }\r\n case ActionType.PreviousMonth: {\r\n // state.endDate.add(-1, 'month').endOf('month');\r\n\r\n let newStartDate = state.startDate.clone().add(-1, 'month').startOf('month');\r\n let newCurrMoment = state.currentDate.clone().add(-1, \"month\");\r\n\r\n if (newCurrMoment.isBefore(state.startDate)) {\r\n return { ...state, updating: true, specificDates: false, currentDate: newCurrMoment, startDate: newStartDate } as ICalendarState;\r\n }\r\n return { ...state, currentDate: newCurrMoment } as ICalendarState;\r\n }\r\n case ActionType.AddDays: {\r\n const extendEvents = action.value.extendDays;\r\n\r\n if (extendEvents) {\r\n if (action.value.numberOfDays > 0) {\r\n state.endDate = moment(state.endDate.add(action.value.numberOfDays, 'day'));\r\n } else {\r\n state.startDate = moment(state.startDate.add(action.value.numberOfDays, 'day'));\r\n }\r\n } else {\r\n state.startDate = moment(state.startDate.add(action.value.numberOfDays, 'day'));\r\n state.endDate = moment(state.endDate.add(action.value.numberOfDays, 'day'));\r\n }\r\n\r\n const updating = true;\r\n return { ...state, updating, extendEvents, specificDates: true } as ICalendarState;\r\n }\r\n case ActionType.GoToMonth: {\r\n const setDate = action.value.clone() as moment.Moment;\r\n\r\n let newStart: moment.Moment;\r\n let newEnd: moment.Moment;\r\n\r\n let mustUpdate = false;\r\n\r\n if (setDate.isBefore(state.startDate)) {\r\n newStart = setDate.clone().startOf(\"month\");\r\n mustUpdate = true;\r\n } else {\r\n newStart = state.startDate.clone();\r\n }\r\n\r\n if (setDate.isAfter(state.endDate)) {\r\n newEnd = setDate.clone().endOf(\"month\");\r\n mustUpdate = true;\r\n } else {\r\n newEnd = state.endDate.clone();\r\n }\r\n\r\n return {\r\n ...state,\r\n updating: mustUpdate,\r\n specificDates: false,\r\n currentDate: action.value.clone(),\r\n startDate: newStart,\r\n endDate: newEnd\r\n } as ICalendarState;\r\n }\r\n case ActionType.SetMonth: {\r\n state.startDate = moment(action.value.startOf('month'));\r\n state.endDate = moment(action.value.endOf('month'));\r\n const updating = true;\r\n return { ...state, updating, specificDates: true } as ICalendarState;\r\n }\r\n case ActionType.SetDates: {\r\n state.startDate = action.value.startDate;\r\n state.endDate = action.value.endDate;\r\n const updating = true;\r\n return { ...state, updating, specificDates: true } as ICalendarState;\r\n }\r\n case ActionType.EventUpdated: {\r\n return { ...state, updating: false } as ICalendarState;\r\n }\r\n case ActionType.BrowserNavigated: {\r\n state = action.value.state;\r\n state.updating = action.value.shouldUpdate;\r\n return state as ICalendarState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { defaultLazyLoadState, ILazyLoadState } from '../../classes/lazy-load';\r\nimport { ActionType, ICalendarStateAction } from '../../classes/calendar-actions';\r\n\r\n/**\r\n * Returns the new search state given a particular action. This where all of the application\r\n * logic resides.\r\n */\r\nexport default function lazyLoadReducer(state: ILazyLoadState = defaultLazyLoadState, action: ICalendarStateAction) {\r\n switch (action.type) {\r\n case ActionType.WaitForImage: {\r\n if (action.value in state.imageHasLoaded) {\r\n return state;\r\n } else {\r\n let imagesDictionary = { ...state.imageHasLoaded };\r\n imagesDictionary[action.value] = false;\r\n\r\n return { ...state, imageHasLoaded: imagesDictionary } as ILazyLoadState;\r\n }\r\n }\r\n case ActionType.ImageHasLoaded: {\r\n let imagesDictionary = { ...state.imageHasLoaded };\r\n imagesDictionary[action.value] = true;\r\n\r\n return { ...state, imageHasLoaded: imagesDictionary } as ILazyLoadState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { ActionType, ICalendarStateAction } from '../../classes/calendar-actions';\r\n\r\nimport * as moment from 'moment';\r\nimport { IPromoCodeState, defaultPromoCodeState, PromoCodeState, IPromoCodeDetail } from '../../classes/promo-code';\r\nimport { ICalendarSettings } from '../../classes/calendar';\r\n\r\n/**\r\n * Returns the new search state given a particular action. This where all of the application\r\n * logic resides.\r\n */\r\nexport default function promoCodeReducer(state: IPromoCodeState = defaultPromoCodeState, action: ICalendarStateAction) {\r\n switch (action.type) {\r\n case ActionType.UpdateSettings: {\r\n if (action.value.promoCode != null) {\r\n return {\r\n ...state, promoCodeState: PromoCodeState.APPLIED,\r\n appliedPromoCode: (action.value.promoCode as IPromoCodeDetail).promoCode\r\n };\r\n }\r\n return { ...state };\r\n }\r\n case ActionType.RequestPromoCodeApply: {\r\n return { ...state, promoCodeRequesting: true } as IPromoCodeState;\r\n }\r\n case ActionType.ReceivePromoCodeApply: {\r\n return { ...state, promoCodeRequesting: false, promoCodeState: PromoCodeState.APPLIED, promoApiResponse: action.value.apiResponse, appliedPromoCode: action.value.promoCode, promoCodeError: null } as IPromoCodeState;\r\n }\r\n case ActionType.ErrorPromoCodeApply: {\r\n return { ...state, promoCodeRequesting: false, promoCodeState: PromoCodeState.FAILURE, promoApiResponse: action.value.apiResponse.response.data, appliedPromoCode: null, promoCodeError: action.value.apiResponse.response.data.exceptionMessage } as IPromoCodeState;\r\n }\r\n case ActionType.RequestPromoCodeRemove: {\r\n return { ...state, promoCodeRequesting: true } as IPromoCodeState;\r\n }\r\n case ActionType.ReceivePromoCodeRemove: {\r\n return { ...state, promoCodeRequesting: false, promoCodeState: PromoCodeState.ATTEMPT, promoApiResponse: action.value.apiResponse, appliedPromoCode: null, promoCodeError: null } as IPromoCodeState;\r\n }\r\n case ActionType.ErrorPromoCodeRemove: {\r\n return { ...state, promoCodeRequesting: false, promoCodeState: PromoCodeState.APPLIED, promoApiResponse: action.value.apiResponse, promoCodeError: action.value.apiResponse.response.data } as IPromoCodeState;\r\n }\r\n case ActionType.UpdatePromoCode: {\r\n return { ...state, promoCodeString: action.value } as IPromoCodeState;\r\n }\r\n case ActionType.ShowPromo: {\r\n return { ...state, showPromo: action.value } as IPromoCodeState;\r\n }\r\n case ActionType.ReceivePromoCodeGet: {\r\n return { ...state, showPromo: true, promoCodeState: PromoCodeState.APPLIED, appliedPromoCode: (action.value.apiResponse as IPromoCodeDetail).promoCode } as IPromoCodeState;\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport PromoCode from '../../components/promo-code';\r\n//import { AppProps } from '../../components/app';\r\nimport CalendarContainer from '../../components/calendar-container';\r\nimport FiltersContainer from '../../components/filters/container';\r\nimport MonthSelectionDropdown from '../../components/month-selection/dropdown';\r\nimport CalendarViewToggle from '../../components/calendar-view-toggle';\r\nimport ScrollToTop from '../../components/navigation/scroll-to-top';\r\nimport { CalendarDeviceMode } from '../../classes/calendar';\r\n\r\nconst AppView: React.StatelessComponent = props => {\r\n return (\r\n
\r\n

{props.text.calendarAppHeading}

\r\n \r\n
\r\n

{props.text.calendarControlsHeading}

\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default AppView;","import * as React from 'react';\r\n\r\nimport GridMonthContainer from '../../components/grid/container';\r\nimport ListMonthContainer from '../../components/list/container';\r\n\r\nimport { CalendarContainerProps } from '../../components/calendar-container';\r\nimport CalendarViewToggle from '../../components/calendar-view-toggle';\r\nimport { CalendarViewMode } from '../../classes/calendar';\r\n\r\nimport LoaderView from '../../components/loader';\r\n\r\n\r\nconst CalendarContainerView: React.StatelessComponent = props => {\r\n let component: JSX.Element = null;\r\n\r\n if (props.calendarViewMode === CalendarViewMode.GRID) {\r\n component = \r\n } else {\r\n component = ;\r\n }\r\n \r\n return (\r\n <>\r\n \r\n {component}\r\n \r\n )\r\n}\r\n\r\nexport default CalendarContainerView;","import * as React from 'react';\r\nimport { CalendarViewToggleProps } from '../../components/calendar-view-toggle';\r\nimport { CalendarViewMode } from '../../classes/calendar';\r\n\r\n\r\nconst CalendarModeToggleView: React.StatelessComponent = props => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default CalendarModeToggleView;","import * as React from 'react';\r\nimport { ClearAllProps } from '../../components/filters/clear-all';\r\nimport { removeLoader } from '../../helpers/scroll-to-month';\r\n\r\nconst ClearAllView: React.StatelessComponent = props => {\r\n function onClick(evt: React.MouseEvent) {\r\n props.removeAllFilters();\r\n let urlNoQuery = window.location.href.split('?')[0];\r\n window.history.pushState({}, document.title, urlNoQuery);\r\n setTimeout(() => removeLoader(), 500)\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default ClearAllView;","import * as React from 'react';\r\nimport * as moment from 'moment';\r\nimport { CombinedFilterViewProps } from '../../components/filters/filter';\r\nimport { scrollToMonth, removeLoader, getMonthElement } from '../../helpers/scroll-to-month';\r\n\r\nconst FilterView: React.StatelessComponent = props => {\r\n function onChange(evt: React.ChangeEvent) {\r\n // Grab the selected option's data-first-occurance attribute.\r\n const selectedValue = evt.currentTarget.value;\r\n const selectEl = evt.currentTarget;\r\n const selectedOption = selectEl.options[selectEl.selectedIndex];\r\n\r\n var updatedFilters = props.currentFilters.set(props.propertyToFilter, selectedOption.value);\r\n\r\n var name = \"\";\r\n if (updatedFilters.get('name')) {\r\n name = updatedFilters.get('name');\r\n }\r\n\r\n var location = \"\";\r\n if (updatedFilters.get('location')) {\r\n location = updatedFilters.get('location');\r\n }\r\n\r\n var category = \"\";\r\n if (updatedFilters.get('categories')) {\r\n category = updatedFilters.get('categories');\r\n }\r\n\r\n let filters = {};\r\n\r\n updatedFilters.forEach(function (value, key) {\r\n filters[key] = value\r\n });\r\n\r\n console.log(filters);\r\n\r\n props.getFirstOccurenceDateForFilters(filters, props.lastMonthToLoad, props.lastLoadedMonth);\r\n props.selectFilter(selectedValue, true);\r\n\r\n }\r\n\r\n const collapsedFilterName = props.filterName.replace(/[^\\w]|_/g, \"\");\r\n\r\n return (\r\n
  • \r\n \r\n \r\n
  • \r\n );\r\n}\r\n\r\nexport default FilterView;","import * as React from 'react';\r\n\r\nimport Filter from '../../components/filters/filter';\r\nimport ClearAll from '../../components/filters/clear-all';\r\n\r\n\r\nimport { FiltersContainerViewProps } from '../../components/filters/container';\r\nimport { CalendarDeviceMode } from '../../classes/calendar';\r\n\r\nconst FiltersListView: React.StatelessComponent = props => {\r\n return (\r\n
      \r\n \r\n \r\n \r\n
    • \r\n \r\n
    • \r\n
    \r\n )\r\n}\r\n\r\nconst FiltersContainerView: React.StatelessComponent = props => {\r\n return (\r\n (props.deviceMode === CalendarDeviceMode.MOBILE || props.filtersAlwaysModal) ?\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {props.text.openFiltersButtonText}

    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    :\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default FiltersContainerView;","import * as React from 'react';\r\nimport { GridDayProps } from '../../components/grid/day';\r\n\r\nimport * as moment from 'moment';\r\nimport GridEventView from '../../components/grid/event';\r\nimport { IEvent } from '../../custom/classes/event';\r\n\r\nconst GridDayView: React.StatelessComponent = props => {\r\n const dateMoment = moment(props.day.date);\r\n var obj = props.day.events.reduce(function (r, e) {\r\n if (!r[e.name]) r[e.name] = e\r\n else r[e.name] = Array.isArray(r[e.name]) ? r[e.name].concat(e) : [r[e.name]].concat(e)\r\n return r;\r\n }, {})\r\n\r\n var result = Object.keys(obj).map(e => obj[e])\r\n const eventsGroupedByName:Array | IEvent = result;\r\n \r\n return (\r\n
  • 0 ? \"ace-cal-grid-day-has-events\" : \"\"}`} aria-labelledby={`Day-${dateMoment.format(\"X\")}`}>\r\n {\r\n props.day.events.length > 0 ?\r\n
    \r\n {dateMoment.format(\"D\")}\r\n

    \r\n {\r\n \r\n {`${dateMoment.format(\"dddd, MMMM\")} ${dateMoment.format(\"D\")}`}\r\n {`: ${props.day.events.length} ${props.day.events.length > 2 ? props.text.pluralEventsText : props.text.singleEventText}`}\r\n \r\n }\r\n

    \r\n
      \r\n {\r\n eventsGroupedByName.map(eventGroupedByName => {\r\n let eventItem = eventGroupedByName;\r\n if (Array.isArray(eventGroupedByName) && eventGroupedByName.length > 1) {\r\n const event = eventGroupedByName[0] as IEvent;\r\n event.showTimes = [];\r\n eventGroupedByName.forEach(show => {\r\n event.showTimes.push(show.eventTimeString);\r\n });\r\n eventItem = eventGroupedByName[0];\r\n }\r\n \r\n return \r\n })\r\n }\r\n
    \r\n
    \r\n :\r\n
    \r\n {`${dateMoment.format(\"dddd, MMMM\")} `}{dateMoment.format(\"D\")}\r\n
    \r\n }\r\n
  • \r\n );\r\n}\r\n\r\nexport default GridDayView;","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { GridEventProps } from '../../components/grid/event';\r\n\r\nconst GridEventView: React.StatelessComponent = props => {\r\n const showTimes = props.event.showTimes;\r\n return (\r\n
  • \r\n \r\n
  • \r\n );\r\n}\r\n\r\nexport default GridEventView;","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport GridMonths from '../../components/grid/months';\r\nimport { GridMonthContainerProps } from '../../components/grid/container';\r\n\r\n\r\nconst GridMonthContainerView: React.StatelessComponent = props => {\r\n const daysOfTheWeek = moment.weekdays(true);\r\n\r\n return (\r\n
    \r\n
      \r\n {\r\n daysOfTheWeek.map(day =>
    • {day}
    • )\r\n }\r\n
    \r\n\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default GridMonthContainerView;","import * as React from 'react';\r\n\r\nimport { GridMonthProps } from '../../components/grid/month';\r\nimport GridDay from '../../components/grid/day';\r\n\r\nconst GridMonthView: React.StatelessComponent = props => {\r\n const hasEvents = props.monthData.events.allDays.length > 0;\r\n\r\n if (hasEvents) {\r\n return (\r\n
  • \r\n
    \r\n

    {props.monthData.monthMoment.format(\"MMMM YYYY\")}

    \r\n
      \r\n {\r\n props.monthData.events.days.map(day => props.monthData.monthMoment.month() === day.date.getMonth() ? :
    • )\r\n }\r\n
    \r\n
    \r\n
  • \r\n );\r\n } else {\r\n return (\r\n
  • \r\n
    \r\n

    {props.monthData.monthMoment.format(\"MMMM YYYY\")}

    \r\n
    \r\n
    \r\n
  • \r\n )\r\n }\r\n}\r\n\r\nexport default GridMonthView;","import * as React from 'react';\r\n\r\nimport { GridMonthsProps } from '../../components/grid/months';\r\nimport GridMonth from '../../components/grid/month';\r\nimport LoadMore from '../../components/month-selection/load-more';\r\n\r\nconst GridMonthsView: React.StatelessComponent = props => {\r\n return (\r\n
    \r\n

    {props.text.gridViewHeading}

    \r\n
      \r\n {\r\n props.monthsData.map(monthData => )\r\n }\r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default GridMonthsView;","import * as React from 'react';\r\n\r\nimport ListMonths from '../../components/list/months';\r\nimport { ListContainerProps } from '../../components/list/container';\r\nimport MonthSelectionDropdown from '../../components/month-selection/dropdown';\r\nimport CalendarViewToggle from '../../components/calendar-view-toggle';\r\n\r\nconst ListMonthsContainerView: React.StatelessComponent = props => {\r\n return (\r\n
    \r\n

    {`${props.eventCount} ${props.eventCount === 1 ? props.text.singleEventText : props.text.pluralEventsText}`}

    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default ListMonthsContainerView;","import * as React from 'react';\r\nimport * as moment from 'moment';\r\nimport { ListDayProps } from '../../components/list/day';\r\nimport ListEvent from '../../components/list/event';\r\n\r\n\r\nconst GridDayView: React.StatelessComponent = props => {\r\n const dateMoment = moment(props.day.date);\r\n if (props.day.events.length) {\r\n return (\r\n
  • \r\n

    {dateMoment.format(\"MMMM D | dddd\")}

    \r\n
      \r\n {\r\n props.day.events.map(event => )\r\n }\r\n
    \r\n
  • \r\n );\r\n }\r\n return null;\r\n \r\n}\r\n\r\nexport default GridDayView;","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport LazyImage from '../../components/lazy-image';\r\nimport clip from \"text-clipper\";\r\nimport { ListEventProps } from '../../components/list/event';\r\n\r\n\r\nclass ListEventView extends React.Component {\r\n eventMoment: any;\r\n constructor(props) {\r\n super(props);\r\n this.eventMoment = moment(props.event.eventDate);\r\n this.state = { showFullSynopsis: false, defaultToggleButtonText: \"Show More\" };\r\n }\r\n toggleSynopsis = () => {\r\n const currentStateShowFullSynopisis = this.state.showFullSynopsis;\r\n this.setState({\r\n showFullSynopsis: !currentStateShowFullSynopisis\r\n })\r\n }\r\n render() {\r\n return (\r\n
  • \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    {this.props.event.name}
    \r\n
    \r\n

    {this.props.event.eventTimeString}

    \r\n

    {this.props.event.residentCompany}

    \r\n

    {this.props.event.location}

    \r\n
    \r\n {\r\n this.props.event.synopsis.length > 0 ?\r\n
    \r\n {\r\n this.state.showFullSynopsis ?\r\n <>\r\n
    \r\n \r\n :\r\n
    \r\n
    \r\n\r\n
    \r\n }\r\n \r\n
    \r\n : null\r\n }\r\n

    {this.props.event.buyTicketCtaText ? this.props.event.buyTicketCtaText : this.props.text.buyTicketCtaDefaultText}

    \r\n
    \r\n
    \r\n
  • \r\n );\r\n }\r\n}\r\n\r\nexport default ListEventView;","import * as React from 'react';\r\n\r\nimport { ListMonthProps } from '../../components/list/month';\r\nimport ListDay from '../../components/list/day';\r\n\r\nconst ListMonthView: React.StatelessComponent = props => {\r\n const hasEvents = props.monthData.events.allDays.length > 0;\r\n\r\n if (hasEvents) {\r\n return (\r\n
  • \r\n
    \r\n

    {props.monthData.monthMoment.format(\"MMMM YYYY\")}

    \r\n
      \r\n {\r\n props.monthData.events.allDays.map(day => )\r\n }\r\n
    \r\n
    \r\n
  • \r\n );\r\n } else {\r\n return (\r\n
  • \r\n
    \r\n

    {props.monthData.monthMoment.format(\"MMMM YYYY\")}

    \r\n
    \r\n
    \r\n
  • \r\n )\r\n }\r\n}\r\n\r\nexport default ListMonthView;","import * as React from 'react';\r\n\r\nimport { ListMonthsProps } from '../../components/list/months';\r\nimport ListMonth from '../../components/list/month';\r\n\r\nimport LoadMore from '../../components/month-selection/load-more';\r\n\r\nconst ListMonthsView: React.StatelessComponent = props => {\r\n return (\r\n
    \r\n

    {props.text.listViewHeading}

    \r\n
      \r\n {\r\n props.monthsData.map(monthData => )\r\n }\r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default ListMonthsView;","import * as React from 'react';\r\nimport { LoaderProps } from '../../components/loader';\r\n\r\nconst LoaderView: React.StatelessComponent = props => {\r\n return (\r\n
    \r\n

    \r\n {props.isLoading ? props.text.calendarLoadingLabel : props.text.calendarDoneLoadingLabel}\r\n

    \r\n
    \r\n

    \r\n {props.isLoading ? props.text.calendarLoadingLabel : props.text.calendarDoneLoadingLabel}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n}\r\n\r\nexport default LoaderView;","import * as React from 'react';\r\nimport * as moment from 'moment';\r\n\r\nimport { GridDayProps } from '../../components/grid/day';\r\n\r\nimport GridEventView from 'grid-event.view';\r\nimport { MonthSelectionDropdownProps } from '../../components/month-selection/dropdown';\r\nimport { CalendarViewMode } from '../../classes/calendar';\r\nimport { scrollToMonth } from '../../helpers/scroll-to-month';\r\n\r\nconst momentFormat = 'YYYY-MM';\r\n\r\nconst MonthSelectionDropdownView: React.StatelessComponent = props => {\r\n function goToMonthChange(evt: React.ChangeEvent) {\r\n const mmt = moment(evt.currentTarget.value, momentFormat);\r\n\r\n props.goToMonth(mmt);\r\n\r\n var focusDestinationMonth = setInterval(() => {\r\n if (scrollToMonth(mmt)) {\r\n clearInterval(focusDestinationMonth);\r\n }\r\n }, 500);\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default MonthSelectionDropdownView;","import * as React from 'react';\r\nimport { GridDayProps } from '../../components/grid/day';\r\n\r\nimport * as moment from 'moment';\r\nimport GridEventView from 'grid-event.view';\r\nimport { LoadMoreProps } from '../../components/month-selection/load-more';\r\nimport { scrollToMonth } from '../../helpers/scroll-to-month';\r\n\r\nconst NextMonthView: React.StatelessComponent = props => {\r\n function onClick(evt: React.MouseEvent) {\r\n evt.preventDefault();\r\n\r\n props.goToNextMonth();\r\n const nextMonth = props.currDate.clone().add(1, \"month\").startOf(\"month\");\r\n\r\n var focusDestinationMonth = setInterval(() => {\r\n if (scrollToMonth(nextMonth)) {\r\n clearInterval(focusDestinationMonth);\r\n }\r\n }, 500);\r\n\r\n }\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default NextMonthView;","import * as React from 'react';\r\nimport { PromoCodeProps } from '../../components/promo-code';\r\nimport { ICalendarAppState } from '../../redux-state';\r\nimport Promocode = require('../../classes/promo-code');\r\nimport IPromoCodeState = Promocode.IPromoCodeState;\r\nimport PromoCodeState = Promocode.PromoCodeState;\r\nimport { connect } from 'react-redux';\r\n\r\ninterface StateToProps {\r\n promoCodeState: IPromoCodeState;\r\n promoCodeError: any;\r\n promoCodeResponse: any;\r\n}\r\n\r\ntype JoinedPromoCodeProps = StateToProps & PromoCodeProps;\r\n\r\nconst PromoCodeView: React.StatelessComponent = props => {\r\n function onTextChange(evt: React.ChangeEvent) {\r\n props.updatePromoCodeString(evt.currentTarget.value);\r\n }\r\n function getClassName(): string {\r\n if (props.show) {\r\n return \"ace-cal-promo-form-control show-promo\";\r\n }\r\n return \"ace-cal-promo-form-control hide-promo\";\r\n }\r\n\r\n function showPromoMessage() {\r\n return props.showPromoResult\r\n ? props.promoCodeState.promoCodeState === PromoCodeState.FAILURE\r\n ? props.promoCodeError\r\n : props.promoCodeResponse\r\n : '';\r\n }\r\n function getPromoForm() {\r\n\r\n if (props.promoCodeState.promoCodeState === PromoCodeState.APPLIED) {\r\n return
    \r\n
    \r\n \r\n
    \r\n
    {props.promoCodeState.appliedPromoCode}
    \r\n \r\n
    \r\n
    \r\n
    ;\r\n }\r\n else {\r\n return
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    {}
    \r\n
    \r\n
    ;\r\n }\r\n }\r\n\r\n\r\n return (\r\n
    \r\n {getPromoForm()}\r\n
    \r\n );\r\n}\r\n\r\nfunction mapStateToProps(state: ICalendarAppState, ownProps: PromoCodeProps): StateToProps {\r\n return {\r\n promoCodeState: state.promoCode,\r\n promoCodeError: '' + state.promoCode.promoCodeError + '',\r\n promoCodeResponse: state.promoCode.promoApiResponse\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(PromoCodeView);","import * as React from 'react';\r\n\r\nimport { CombinedScrollToTopProps } from '../../components/navigation/scroll-to-top';\r\n\r\nconst ScrollToTopView: React.StatelessComponent = props => {\r\n return (\r\n Scroll to Top\r\n )\r\n}\r\n\r\nexport default ScrollToTopView;","module.exports = __WEBPACK_EXTERNAL_MODULE_lodash__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","module.exports = __WEBPACK_EXTERNAL_MODULE_react_dom__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tresult = fn();\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"calendar\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) var result = runtime(__webpack_require__);\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkLibrary\"] = self[\"webpackChunkLibrary\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"common\"], function() { return __webpack_require__(\"./calendar/index.tsx\"); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"sourceRoot":""}