@opencitylabs/formio-custom-components 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +10 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1373 -1342
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/customComponentFormio/PageBreak/PageBreak.jsx","../src/_helpers/BaseUrl.js","../src/customComponentFormio/DynamicCalendar/DynamicCalendar.edit.display.js","../src/customComponentFormio/DynamicCalendar/DynamicCalendar.form.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/isSameWeek.js","../node_modules/date-fns/locale/de/_lib/formatDistance.js","../node_modules/date-fns/locale/de/_lib/formatLong.js","../node_modules/date-fns/locale/de/_lib/formatRelative.js","../node_modules/date-fns/locale/de/_lib/localize.js","../node_modules/date-fns/locale/de/_lib/match.js","../node_modules/date-fns/locale/de.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/locale/en-GB/_lib/formatLong.js","../node_modules/date-fns/locale/en-GB.js","../node_modules/date-fns/locale/it/_lib/formatDistance.js","../node_modules/date-fns/locale/it/_lib/formatLong.js","../node_modules/date-fns/locale/it/_lib/formatRelative.js","../node_modules/date-fns/locale/it/_lib/localize.js","../node_modules/date-fns/locale/it/_lib/match.js","../node_modules/date-fns/locale/it.js","../node_modules/moment/moment.js","../node_modules/moment/locale/it.js","../node_modules/moment/locale/en-gb.js","../node_modules/moment/locale/de.js","../src/class/ConvertTimeInInteger.js","../src/_helpers/utilities.js","../src/customComponentFormio/DynamicCalendar/DaySelected.jsx","../src/customComponentFormio/DynamicCalendar/DynamicCalendar.jsx","../src/customComponentFormio/Calendar/Calendar.edit.display.js","../src/customComponentFormio/Calendar/Calendar.form.js","../src/customComponentFormio/Calendar/DaySelected.jsx","../src/customComponentFormio/Calendar/Calendar.jsx","../src/customComponentFormio/CalendarAdvanced/CalendarAdvanced.edit.display.js","../src/customComponentFormio/CalendarAdvanced/CalendarAdvanced.form.js","../src/customComponentFormio/CalendarAdvanced/SlotSelected.jsx","../src/functions/adjustSlotHeight.js","../src/customComponentFormio/CalendarAdvanced/calendarUtility.js","../src/customComponentFormio/CalendarAdvanced/CalendarAdvanced.jsx","../src/customComponentFormio/FileSdc/SdcFile.edit.data.js","../src/customComponentFormio/FileSdc/SdcFile.edit.display.js","../src/customComponentFormio/FileSdc/SdcFile.edit.file.js","../src/customComponentFormio/FileSdc/SdcFile.edit.validation.js","../src/customComponentFormio/FileSdc/SdcFile.form.js","../node_modules/lodash/isArray.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_root.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/eq.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/memoize.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/toString.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/get.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_baseSet.js","../node_modules/lodash/set.js","../src/class/Auth.js","../src/customComponentFormio/FileSdc/SdcFileReact.jsx","../src/customComponentFormio/AddressMap/AddressMap.edit.display.js","../src/customComponentFormio/AddressMap/AddressMap.form.js","../node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js","../node_modules/accessible-autocomplete/react.js","../src/components/AccessibleAutocomplete.jsx","../node_modules/leaflet/dist/images/marker-icon-2x.png","../node_modules/leaflet/dist/images/marker-icon.png","../node_modules/leaflet/dist/images/marker-shadow.png","../src/customComponentFormio/AddressMap/Map.jsx","../src/customComponentFormio/AddressMap/AddressMap.jsx","../src/customComponentFormio/ListServices/ListServices.edit.display.js","../src/customComponentFormio/ListServices/ListServices.form.js","../src/customComponentFormio/ListServices/ListServices.jsx","../src/index.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { ReactComponent } from \"@formio/react\";\nimport { createRoot } from \"react-dom/client\";\nimport React, { useRef } from \"react\";\n\nexport const ReactPageBreak = (ref) => {\n const r = useRef()\n return (\n <div\n ref={r}\n className=\"row page-break-before pagebreak-container\"\n >\n <div className=\"col-12 text-center pagebreak-component\">Page break</div>\n </div>\n );\n};\n\nexport default class FormioPageBreak extends ReactComponent {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n static schema() {\n return ReactComponent.schema({\n type: \"pagebreak\",\n });\n }\n\n static builderInfo = {\n title: \"PageBreak\",\n group: \"basic\",\n icon: \"bi bi-file-break\",\n weight: 70,\n schema: FormioPageBreak.schema(),\n };\n\n //static editForm = editForm\n\n /**\n * Render returns a html string of the fully rendered component.\n *\n * @returns {string}\n */\n render() {\n // Calling super.render will wrap it html as a component.\n return super.render(\n `<div></div>`,\n );\n }\n\n /**\n * After the html string has been mounted into the dom, the dom element is returned here. Use refs to find specific\n * elements to attach functionality to.\n *\n * @param element\n * @returns {Promise}\n */\n attach(element) {\n // Allow basic component functionality to attach like field logic and tooltips.\n return super.attach(element);\n }\n\n /**\n * Get the value of the component from the dom elements.\n *\n * @returns {String}\n */\n getValue() {\n return \"\";\n }\n\n /**\n * Set the value of the component into the dom elements.\n *\n * @param value\n * @returns {boolean}\n */\n setValue(value) {\n if (!value) {\n return;\n }\n return;\n }\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attachReact(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactPageBreak ref={ref} {...this} current={this} />,\n );\n }\n}\n","export const baseUrl = () => {\n const location = window.location;\n const globalRegex = new RegExp(\n \"qa.bugliano.pi.it|localhost|opencity-labs.gitlab.io|form-builder-qa.stanzadelcittadino.it\",\n \"g\",\n );\n let url = null;\n if (globalRegex.test(location.hostname)) {\n url = \"https://servizi.comune-qa.bugliano.pi.it/lang\";\n } else if (window.BASE_URL) {\n url = window.BASE_URL;\n } else {\n const explodedPath = location.pathname.split(\"/\");\n url = location.origin + \"/\" + explodedPath[1];\n }\n return url;\n};\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n type: \"select\",\n label: \"Nome Calendario\",\n key: \"calendarId\",\n input: true,\n weight: 1,\n placeholder: \"Nome Calendario\",\n tooltip: \"Inserisci il nome del calendario\",\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars?type=time_variable_slots\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.title }}</span>\",\n selectValues: \"Results\",\n },\n {\n type: \"checkbox\",\n label: \"Seleziona orari di apertura\",\n key: \"select_opening_hours\",\n input: true,\n weight: 1,\n tooltip: \"Abilita per selezionare i singoli orari di apertura\",\n defaultValue: false,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n type: \"select\",\n label: \"Orari di apertura\",\n key: \"opening_hours\",\n input: true,\n weight: 1,\n placeholder: \"Seleziona gli orari di apertura\",\n tooltip: \"Seleziona gli orari di apertura\",\n multiple: true,\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars/{{data.calendarId}}/opening-hours\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.name }}</span>\",\n selectValues: \"results\",\n conditional: {\n show: true,\n when: \"select_opening_hours\",\n eq: \"true\",\n },\n },\n {\n label: \"Api Url\",\n redrawOn: \"data\",\n calculateValue:\n \"if (data.calendarId) {\\n\" +\n \" let url = data.url + '/api/calendars/' + data.calendarId + '/overlaps';\\n\" +\n \" if (data.select_opening_hours && data.opening_hours.length > 0) {\\n\" +\n ' let qs = \"?opening_hours=\" + data.opening_hours.join();\\n' +\n \" url = url + qs;\\n\" +\n \" }\\n\" +\n \" if (data.api_url !== url) value = url;\\n\" +\n \"} else {url = ''}\",\n key: \"api_url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n label: \"Sovrapposizioni\",\n inputFormat: \"plain\",\n redrawOn: \"api_url\",\n calculateValue:\n \"\" +\n \"function loadJSON(path, success, error){\\n\" +\n \" var xhr = new XMLHttpRequest();\\n\" +\n \" xhr.onreadystatechange = function() {\\n\" +\n \" if (xhr.readyState === XMLHttpRequest.DONE) {\\n\" +\n \" if (xhr.status === 200) {\\n\" +\n \" let responseData = JSON.parse(xhr.response);\\n\" +\n \" success(responseData.count);\\n\" +\n \" } else {\\n\" +\n \" error();\\n\" +\n \" }\\n\" +\n \" }\" +\n \" }\\n\" +\n ' xhr.open(\"GET\", path, true);\\n' +\n \" xhr.send();\\n\" +\n \"}\\n\" +\n \"if(data.calendarId && data.api_url){\\n\" +\n \" var url = data.api_url;\\n\" +\n \" loadJSON(url,\\n\" +\n \" function(count) {\\n\" +\n \" data.overlaps_validation = count; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = count;\\n\" +\n \" },\\n\" +\n \" function() {\\n\" +\n \" data.overlaps_validation = -1; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = -1;\\n\" +\n \" }\\n\" +\n \" );\\n\" +\n \"}\",\n validateOn: \"change\",\n validate: {\n customMessage: \"Vi sono sovrapposizioni negli orari di apertura\",\n custom:\n \"\" +\n \"if (document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value === '0') {\" +\n \"valid=true\" +\n \"} else {\" +\n \"valid = 'Sovrapposizione';\" +\n \"}\",\n },\n key: \"overlaps_validation\",\n attributes: {\n readonly: \"true\",\n },\n required: true,\n type: \"number\",\n input: true,\n weight: 1,\n },\n {\n label: \"Precisione minima (minuti)\",\n defaultValue: 1,\n required: true,\n inputFormat: \"plain\",\n key: \"range_step\",\n type: \"number\",\n input: true,\n weight: 1,\n },\n];\n","import { Components } from \"@formio/react\";\nimport DynamicCalendarEdit from \"./DynamicCalendar.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: DynamicCalendarEdit,\n },\n ],\n ...extend,\n );\n}\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link isSameWeek} function options.\n */\n\n/**\n * @name isSameWeek\n * @category Week Helpers\n * @summary Are the given dates in the same week (and month and year)?\n *\n * @description\n * Are the given dates in the same week (and month and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same week (and month and year)\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {\n * weekStartsOn: 1\n * })\n * //=> false\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same week?\n * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameWeek(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options)\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameWeek;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: \"weniger als 1 Sekunde\",\n other: \"weniger als {{count}} Sekunden\",\n },\n withPreposition: {\n one: \"weniger als 1 Sekunde\",\n other: \"weniger als {{count}} Sekunden\",\n },\n },\n\n xSeconds: {\n standalone: {\n one: \"1 Sekunde\",\n other: \"{{count}} Sekunden\",\n },\n withPreposition: {\n one: \"1 Sekunde\",\n other: \"{{count}} Sekunden\",\n },\n },\n\n halfAMinute: {\n standalone: \"eine halbe Minute\",\n withPreposition: \"einer halben Minute\",\n },\n\n lessThanXMinutes: {\n standalone: {\n one: \"weniger als 1 Minute\",\n other: \"weniger als {{count}} Minuten\",\n },\n withPreposition: {\n one: \"weniger als 1 Minute\",\n other: \"weniger als {{count}} Minuten\",\n },\n },\n\n xMinutes: {\n standalone: {\n one: \"1 Minute\",\n other: \"{{count}} Minuten\",\n },\n withPreposition: {\n one: \"1 Minute\",\n other: \"{{count}} Minuten\",\n },\n },\n\n aboutXHours: {\n standalone: {\n one: \"etwa 1 Stunde\",\n other: \"etwa {{count}} Stunden\",\n },\n withPreposition: {\n one: \"etwa 1 Stunde\",\n other: \"etwa {{count}} Stunden\",\n },\n },\n\n xHours: {\n standalone: {\n one: \"1 Stunde\",\n other: \"{{count}} Stunden\",\n },\n withPreposition: {\n one: \"1 Stunde\",\n other: \"{{count}} Stunden\",\n },\n },\n\n xDays: {\n standalone: {\n one: \"1 Tag\",\n other: \"{{count}} Tage\",\n },\n withPreposition: {\n one: \"1 Tag\",\n other: \"{{count}} Tagen\",\n },\n },\n\n aboutXWeeks: {\n standalone: {\n one: \"etwa 1 Woche\",\n other: \"etwa {{count}} Wochen\",\n },\n withPreposition: {\n one: \"etwa 1 Woche\",\n other: \"etwa {{count}} Wochen\",\n },\n },\n\n xWeeks: {\n standalone: {\n one: \"1 Woche\",\n other: \"{{count}} Wochen\",\n },\n withPreposition: {\n one: \"1 Woche\",\n other: \"{{count}} Wochen\",\n },\n },\n\n aboutXMonths: {\n standalone: {\n one: \"etwa 1 Monat\",\n other: \"etwa {{count}} Monate\",\n },\n withPreposition: {\n one: \"etwa 1 Monat\",\n other: \"etwa {{count}} Monaten\",\n },\n },\n\n xMonths: {\n standalone: {\n one: \"1 Monat\",\n other: \"{{count}} Monate\",\n },\n withPreposition: {\n one: \"1 Monat\",\n other: \"{{count}} Monaten\",\n },\n },\n\n aboutXYears: {\n standalone: {\n one: \"etwa 1 Jahr\",\n other: \"etwa {{count}} Jahre\",\n },\n withPreposition: {\n one: \"etwa 1 Jahr\",\n other: \"etwa {{count}} Jahren\",\n },\n },\n\n xYears: {\n standalone: {\n one: \"1 Jahr\",\n other: \"{{count}} Jahre\",\n },\n withPreposition: {\n one: \"1 Jahr\",\n other: \"{{count}} Jahren\",\n },\n },\n\n overXYears: {\n standalone: {\n one: \"mehr als 1 Jahr\",\n other: \"mehr als {{count}} Jahre\",\n },\n withPreposition: {\n one: \"mehr als 1 Jahr\",\n other: \"mehr als {{count}} Jahren\",\n },\n },\n\n almostXYears: {\n standalone: {\n one: \"fast 1 Jahr\",\n other: \"fast {{count}} Jahre\",\n },\n withPreposition: {\n one: \"fast 1 Jahr\",\n other: \"fast {{count}} Jahren\",\n },\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = options?.addSuffix\n ? formatDistanceLocale[token].withPreposition\n : formatDistanceLocale[token].standalone;\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return \"vor \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nconst dateFormats = {\n full: \"EEEE, do MMMM y\", // Montag, 7. Januar 2018\n long: \"do MMMM y\", // 7. Januar 2018\n medium: \"do MMM y\", // 7. Jan. 2018\n short: \"dd.MM.y\", // 07.01.2018\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"v.Chr.\", \"n.Chr.\"],\n abbreviated: [\"v.Chr.\", \"n.Chr.\"],\n wide: [\"vor Christus\", \"nach Christus\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1. Quartal\", \"2. Quartal\", \"3. Quartal\", \"4. Quartal\"],\n};\n\n// Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n\n wide: [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ],\n};\n\n// https://st.unicode.org/cldr-apps/v#/de/Gregorian/\nconst formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: [\n \"Jan.\",\n \"Feb.\",\n \"März\",\n \"Apr.\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"Aug.\",\n \"Sep.\",\n \"Okt.\",\n \"Nov.\",\n \"Dez.\",\n ],\n\n wide: monthValues.wide,\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"D\", \"M\", \"D\", \"F\", \"S\"],\n short: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n abbreviated: [\"So.\", \"Mo.\", \"Di.\", \"Mi.\", \"Do.\", \"Fr.\", \"Sa.\"],\n wide: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nconst dayPeriodValues = {\n narrow: {\n am: \"vm.\",\n pm: \"nm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"Morgen\",\n afternoon: \"Nachm.\",\n evening: \"Abend\",\n night: \"Nacht\",\n },\n abbreviated: {\n am: \"vorm.\",\n pm: \"nachm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"Morgen\",\n afternoon: \"Nachmittag\",\n evening: \"Abend\",\n night: \"Nacht\",\n },\n wide: {\n am: \"vormittags\",\n pm: \"nachmittags\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"Morgen\",\n afternoon: \"Nachmittag\",\n evening: \"Abend\",\n night: \"Nacht\",\n },\n};\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"vm.\",\n pm: \"nm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"morgens\",\n afternoon: \"nachm.\",\n evening: \"abends\",\n night: \"nachts\",\n },\n abbreviated: {\n am: \"vorm.\",\n pm: \"nachm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"morgens\",\n afternoon: \"nachmittags\",\n evening: \"abends\",\n night: \"nachts\",\n },\n wide: {\n am: \"vormittags\",\n pm: \"nachmittags\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"morgens\",\n afternoon: \"nachmittags\",\n evening: \"abends\",\n night: \"nachts\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber) => {\n const number = Number(dirtyNumber);\n\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i,\n};\nconst parseEraPatterns = {\n any: [/^v/i, /^n/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated:\n /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^j[aä]/i,\n /^f/i,\n /^mär/i,\n /^ap/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i,\n};\nconst parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated:\n /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i, // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i, // will never be matched. Night is matched by `pm`\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./de/_lib/formatDistance.js\";\nimport { formatLong } from \"./de/_lib/formatLong.js\";\nimport { formatRelative } from \"./de/_lib/formatRelative.js\";\nimport { localize } from \"./de/_lib/localize.js\";\nimport { match } from \"./de/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu](https://github.com/DeMuu)\n * @author Asia [@asia-t](https://github.com/asia-t)\n * @author Van Vuong Ngo [@vanvuongngo](https://github.com/vanvuongngo)\n * @author RomanErnst [@pex](https://github.com/pex)\n * @author Philipp Keck [@Philipp91](https://github.com/Philipp91)\n */\nexport const de = {\n code: \"de\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default de;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d MMMM yyyy\",\n long: \"d MMMM yyyy\",\n medium: \"d MMM yyyy\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\nimport { formatLong } from \"./en-GB/_lib/formatLong.js\";\n\n/**\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik](https://github.com/glintik)\n */\nexport const enGB = {\n code: \"en-GB\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default enGB;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"meno di un secondo\",\n other: \"meno di {{count}} secondi\",\n },\n\n xSeconds: {\n one: \"un secondo\",\n other: \"{{count}} secondi\",\n },\n\n halfAMinute: \"alcuni secondi\",\n\n lessThanXMinutes: {\n one: \"meno di un minuto\",\n other: \"meno di {{count}} minuti\",\n },\n\n xMinutes: {\n one: \"un minuto\",\n other: \"{{count}} minuti\",\n },\n\n aboutXHours: {\n one: \"circa un'ora\",\n other: \"circa {{count}} ore\",\n },\n\n xHours: {\n one: \"un'ora\",\n other: \"{{count}} ore\",\n },\n\n xDays: {\n one: \"un giorno\",\n other: \"{{count}} giorni\",\n },\n\n aboutXWeeks: {\n one: \"circa una settimana\",\n other: \"circa {{count}} settimane\",\n },\n\n xWeeks: {\n one: \"una settimana\",\n other: \"{{count}} settimane\",\n },\n\n aboutXMonths: {\n one: \"circa un mese\",\n other: \"circa {{count}} mesi\",\n },\n\n xMonths: {\n one: \"un mese\",\n other: \"{{count}} mesi\",\n },\n\n aboutXYears: {\n one: \"circa un anno\",\n other: \"circa {{count}} anni\",\n },\n\n xYears: {\n one: \"un anno\",\n other: \"{{count}} anni\",\n },\n\n overXYears: {\n one: \"più di un anno\",\n other: \"più di {{count}} anni\",\n },\n\n almostXYears: {\n one: \"quasi un anno\",\n other: \"quasi {{count}} anni\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"tra \" + result;\n } else {\n return result + \" fa\";\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE d MMMM y\",\n long: \"d MMMM y\",\n medium: \"d MMM y\",\n short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} {{time}}\",\n long: \"{{date}} {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst weekdays = [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\",\n];\n\nfunction lastWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica scorsa alle' p\";\n default:\n return \"'\" + weekdays[day] + \" scorso alle' p\";\n }\n}\n\nfunction thisWeek(day) {\n return \"'\" + weekdays[day] + \" alle' p\";\n}\n\nfunction nextWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica prossima alle' p\";\n default:\n return \"'\" + weekdays[day] + \" prossimo alle' p\";\n }\n}\n\nconst formatRelativeLocale = {\n lastWeek: (date, baseDate, options) => {\n const day = date.getDay();\n if (isSameWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'ieri alle' p\",\n today: \"'oggi alle' p\",\n tomorrow: \"'domani alle' p\",\n nextWeek: (date, baseDate, options) => {\n const day = date.getDay();\n if (isSameWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date, baseDate, options);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"aC\", \"dC\"],\n abbreviated: [\"a.C.\", \"d.C.\"],\n wide: [\"avanti Cristo\", \"dopo Cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"G\", \"F\", \"M\", \"A\", \"M\", \"G\", \"L\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"gen\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"mag\",\n \"giu\",\n \"lug\",\n \"ago\",\n \"set\",\n \"ott\",\n \"nov\",\n \"dic\",\n ],\n\n wide: [\n \"gennaio\",\n \"febbraio\",\n \"marzo\",\n \"aprile\",\n \"maggio\",\n \"giugno\",\n \"luglio\",\n \"agosto\",\n \"settembre\",\n \"ottobre\",\n \"novembre\",\n \"dicembre\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"L\", \"M\", \"M\", \"G\", \"V\", \"S\"],\n short: [\"dom\", \"lun\", \"mar\", \"mer\", \"gio\", \"ven\", \"sab\"],\n abbreviated: [\"dom\", \"lun\", \"mar\", \"mer\", \"gio\", \"ven\", \"sab\"],\n wide: [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"m.\",\n pm: \"p.\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"mattina\",\n afternoon: \"pomeriggio\",\n evening: \"sera\",\n night: \"notte\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"mattina\",\n afternoon: \"pomeriggio\",\n evening: \"sera\",\n night: \"notte\",\n },\n wide: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"mattina\",\n afternoon: \"pomeriggio\",\n evening: \"sera\",\n night: \"notte\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"m.\",\n pm: \"p.\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"di mattina\",\n afternoon: \"del pomeriggio\",\n evening: \"di sera\",\n night: \"di notte\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"di mattina\",\n afternoon: \"del pomeriggio\",\n evening: \"di sera\",\n night: \"di notte\",\n },\n wide: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"di mattina\",\n afternoon: \"del pomeriggio\",\n evening: \"di sera\",\n night: \"di notte\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return String(number);\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(aC|dC)/i,\n abbreviated: /^(a\\.?\\s?C\\.?|a\\.?\\s?e\\.?\\s?v\\.?|d\\.?\\s?C\\.?|e\\.?\\s?v\\.?)/i,\n wide: /^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i,\n};\nconst parseEraPatterns = {\n any: [/^a/i, /^(d|e)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[gfmalsond]/i,\n abbreviated: /^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,\n wide: /^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^g/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^g/i,\n /^l/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ge/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^mag/i,\n /^gi/i,\n /^l/i,\n /^ag/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[dlmgvs]/i,\n short: /^(do|lu|ma|me|gi|ve|sa)/i,\n abbreviated: /^(dom|lun|mar|mer|gio|ven|sab)/i,\n wide: /^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^g/i, /^v/i, /^s/i],\n any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^g/i, /^v/i, /^s/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow:\n /^(a|m\\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n any: /^([ap]\\.?\\s?m\\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mezza/i,\n noon: /^mezzo/i,\n morning: /mattina/i,\n afternoon: /pomeriggio/i,\n evening: /sera/i,\n night: /notte/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./it/_lib/formatDistance.js\";\nimport { formatLong } from \"./it/_lib/formatLong.js\";\nimport { formatRelative } from \"./it/_lib/formatRelative.js\";\nimport { localize } from \"./it/_lib/localize.js\";\nimport { match } from \"./it/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Italian locale.\n * @language Italian\n * @iso-639-2 ita\n * @author Alberto Restifo [@albertorestifo](https://github.com/albertorestifo)\n * @author Giovanni Polimeni [@giofilo](https://github.com/giofilo)\n * @author Vincenzo Carrese [@vin-car](https://github.com/vin-car)\n */\nexport const it = {\n code: \"it\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default it;\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","export const convertTimeInInteger = (string) => {\n let concatString = \"\";\n string.split(\":\").forEach((time) => {\n concatString += time;\n });\n return parseInt(concatString);\n};\n\nexport const convertIntegerToTime = (number) => {\n const paddedNumber = number.toString().padStart(4, \"0\");\n const parts = paddedNumber.match(/.{1,2}/g);\n return parts.join(\":\");\n};\n","import i18next from \"i18next\";\n\nexport function capitalizeFirstLetter(string) {\n const lowerCase = string.toLowerCase()\n return lowerCase.charAt(0).toUpperCase() + lowerCase.slice(1);\n}\n\nexport function formatBytes(bytes, decimals = 2) {\n if (!+bytes) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n}\n\nexport function resizeImage(base64Str, maxWidth = 400, maxHeight = 350) {\n return new Promise((resolve) => {\n let img = new Image();\n img.src = base64Str;\n img.onload = () => {\n let canvas = document.createElement(\"canvas\");\n const MAX_WIDTH = maxWidth;\n const MAX_HEIGHT = maxHeight;\n let width = img.width;\n let height = img.height;\n let shouldResize = false;\n\n if (width > height) {\n if (width > MAX_WIDTH) {\n height *= MAX_WIDTH / width;\n width = MAX_WIDTH;\n shouldResize = true;\n }\n } else {\n if (height > MAX_HEIGHT) {\n width *= MAX_HEIGHT / height;\n height = MAX_HEIGHT;\n shouldResize = true;\n }\n }\n if (shouldResize) {\n canvas.width = width;\n canvas.height = height;\n let ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0, width, height);\n resolve(canvas.toDataURL(\"image/jpeg\", 0.9));\n } else {\n resolve(base64Str);\n }\n };\n });\n}\n\nexport function getBase64(file) {\n let reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = function () {\n return reader.result;\n };\n reader.onerror = function (error) {\n console.log(\"Error: \", error);\n };\n}\n\nexport function isImage(url) {\n return /\\.(jpg|jpeg|png|webp|avif|gif|svg|heic|heif)$/.test(url);\n}\n\nexport function countItemsNested(data) {\n let k = 0;\n let i = 0;\n const stats = {};\n data.forEach((arr) => {\n arr.attachments.map((e) =>\n Object.assign(stats, {\n images: isImage(e.name) ? (k = k + 1) : k,\n files: !isImage(e.name) ? (i = i + 1) : i,\n }),\n );\n });\n return stats;\n}\n\nexport function detectBoundingBox() {\n // window.OC_BB = lng1,lon1,lng2,lon2\n const boundingBoxItaly =\n \"6.7499552751,36.619987291,18.4802470232,47.1153931748\";\n const boundingBoxCustom = window.OC_BB\n ? window.OC_BB.split(\",\")\n : boundingBoxItaly.split(\",\");\n return boundingBoxCustom\n ? [\n [boundingBoxCustom[1], boundingBoxCustom[0]],\n [boundingBoxCustom[3], boundingBoxCustom[2]],\n ]\n : [\n [6.7499552751, 36.619987291],\n [18.4802470232, 47.1153931748],\n ];\n}\n\nexport function isObjectEmpty(objectName) {\n return (\n objectName &&\n Object.keys(objectName).length === 0 &&\n objectName.constructor === Object\n );\n}\n\nexport const locationNameFormatter = (data) => {\n const properties = data.address;\n if (data.addresstype === \"county\" && properties[\"country\"]) {\n return properties[\"county\"];\n } else if (data.addresstype === \"village\" && properties[\"village\"]) {\n return properties[\"village\"];\n }\n const parts = [];\n const place = [\n \"emergency\",\n \"historic\",\n \"military\",\n \"natural\",\n \"landuse\",\n \"place\",\n \"railway\",\n \"man_made\",\n \"aerialway\",\n \"boundary\",\n \"amenity\",\n \"aeroway\",\n \"club\",\n \"craft\",\n \"leisure\",\n \"office\",\n \"mountain_pass\",\n \"shop\",\n \"tourism\",\n \"bridge\",\n \"tunnel\",\n \"waterway\",\n \"name\",\n ];\n\n place.forEach((prop) => {\n if (properties.hasOwnProperty(prop) && properties[prop]) {\n parts.push(properties[prop]);\n }\n });\n if (properties[\"road\"]) {\n parts.push(properties[\"road\"]);\n } else if (properties[\"pedestrian\"]) {\n parts.push(properties[\"pedestrian\"]);\n } else if (properties[\"suburb\"]) {\n parts.push(properties[\"suburb\"]);\n } else if (properties[\"square\"]) {\n parts.push(properties[\"square\"]);\n } else {\n if (properties[\"neighbourhood\"]) {\n parts.push(properties[\"neighbourhood\"]);\n }\n if (properties[\"hamlet\"]) {\n parts.push(properties[\"hamlet\"]);\n } else if (properties[\"isolated_dwelling\"]) {\n parts.push(properties[\"isolated_dwelling\"]);\n } else if (properties[\"locality\"]) {\n parts.push(properties[\"locality\"]);\n } else if (properties[\"croft\"]) {\n parts.push(properties[\"croft\"]);\n }\n }\n if (properties[\"house_number\"]) {\n parts.push(properties[\"house_number\"]);\n }\n if (properties[\"postcode\"]) {\n parts.push(properties[\"postcode\"]);\n }\n if (properties[\"village\"]) {\n parts.push(properties[\"village\"]);\n }\n if (properties[\"town\"]) {\n parts.push(properties[\"town\"]);\n } else if (properties[\"city\"]) {\n parts.push(properties[\"city\"]);\n }\n var name = parts.join(\", \").substr(0, 150);\n return name;\n};\n\nexport const checkAnonymUser = (email) => {\n const globalRegex = new RegExp(\"anonymous.fake.email\", \"gm\");\n return globalRegex.test(email);\n};\n\nexport const checkAnonymUserFiscalCode = (fiscalCode) => {\n const globalRegex = new RegExp(\"^[0-9a-fA-F]{8}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{12}$\", \"gm\");\n return globalRegex.test(fiscalCode);\n};\n\nexport const checkServiceNotScheduledNow = (service) => {\n let scheduled = service.status === 4;\n if (scheduled && service.scheduled_from && service.scheduled_to) {\n const nowTime = Date.now();\n scheduled =\n Date.parse(service.scheduled_from) > nowTime ||\n nowTime > Date.parse(service.scheduled_to)\n ? true\n : false;\n }\n return scheduled;\n};\n\nexport const serviceHasStamps = (service) => {\n if (service?.stamps && service.stamps.some((s) => s.phase === \"request\")) {\n return true;\n } else {\n return false;\n }\n};\n\n// get from session (if the value expired it is destroyed)\nexport function sessionGet(key) {\n let stringValue = window.sessionStorage.getItem(key);\n if (stringValue !== null) {\n let value = JSON.parse(stringValue);\n let expirationDate = new Date(value.expirationDate);\n if (expirationDate > new Date()) {\n return value.value;\n } else {\n window.sessionStorage.removeItem(key);\n }\n }\n return null;\n}\n\n// add into session\nexport function sessionSet(key, value, expirationToken) {\n let expirationDate = expirationToken\n ? new Date(expirationToken * 1000)\n : null;\n if (expirationDate) {\n let newValue = {\n value: value,\n expirationDate: expirationDate.toISOString(),\n };\n window.sessionStorage.setItem(key, JSON.stringify(newValue));\n }\n}\n\nexport function formatArrayWithLocale(words, locale) {\n if (!Array.isArray(words) || words.length === 0) {\n return \"\";\n }\n\n const separator = i18next.t(\"arraySeparator\", { lng: locale }) || \", \";\n const lastSeparator =\n i18next.t(\"OrArrayLastSeparator\", { lng: locale }) || \" o \";\n\n if (words.length === 1) {\n return words[0];\n }\n const copy = [...words];\n const lastWord = copy.pop();\n return `${copy.join(separator)}${lastSeparator}${lastWord}`;\n}\n\nexport function getLoginProviders(locale) {\n const envLoginProvider =\n typeof process !== \"undefined\" &&\n process?.env?.REACT_APP_LOGIN_PROVIDER\n ? process.env.REACT_APP_LOGIN_PROVIDER.split(\",\")\n : [];\n const loginProvider =\n window.OC_LOGIN_PROVIDER || envLoginProvider;\n return formatArrayWithLocale(loginProvider, locale);\n}\n\n/**\n * Restituisce lo shadowRoot del widget Form.io, oppure document come fallback.\n */\nexport function getShadowRoot() {\n const widget = document.querySelector(\"widget-formio\");\n return widget?.shadowRoot || document;\n}\n","import React from \"react\";\n\nfunction DaySelected({ day, slot, i18next }) {\n return (\n <li className=\"it-list-item\">\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n <b>{day}</b> {i18next.t(\"alle\")} {i18next.t(\"ore\")} <b>{slot}</b>\n </span>\n </div>\n </div>\n </li>\n );\n}\n\nexport default DaySelected;\n","import editForm from \"./DynamicCalendar.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { ReactComponent } from \"@formio/react\";\nimport { createRoot } from \"react-dom/client\";\nimport { DayPicker } from \"react-day-picker\";\nimport Countdown from \"react-countdown\";\nimport \"react-day-picker/style.css\";\nimport { it, de, enGB } from \"date-fns/locale\";\nimport moment from \"moment\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport {\n Alert,\n Button,\n Icon,\n Input,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from \"design-react-kit\";\nimport {\n convertIntegerToTime,\n convertTimeInInteger,\n} from \"../../class/ConvertTimeInInteger\";\nimport Swal from \"sweetalert2\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport DaySelected from \"./DaySelected\";\nimport dayjs from \"dayjs\";\n\nexport const ReactDynamicCalendar = ({\n component,\n current,\n onChange,\n i18next,\n}) => {\n //Data sul calendario selezionata\n const [selected, setSelected] = useState();\n\n //Date sul calendario disabilitate\n const [disabledDates, setDisabledDates] = useState([]);\n\n const [daysSlot, setDaysSlot] = useState([]);\n // Mostra errore se non ci sono date disponibili\n const [noAvailableSlot, setNoAvailableSlot] = useState(false);\n\n //Meeting id restituito dalla chiamata draft\n const [draftMeeting, setDraftMeeting] = useState(null);\n\n // Slot selezionato\n const [slotSelected, setSlotSelected] = useState(null);\n\n const [selectedData, setSelectedData] = useState(null);\n const [activeSlot, setActiveSlot] = useState(null);\n\n //Prima data disponibile del mese\n const [firstAvailableSlot, setFirstAvailableSlot] = useState({});\n // Dato caledario sola lettura\n const [renderData, setRenderData] = useState(null);\n\n //Modale\n const [isOpen, toggleModal] = useState(false);\n\n //Lista meeting\n const [listMeeting, setListMeeting] = useState([]);\n\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n\n const refButtonSlot = useRef();\n\n const calendarID = component.calendarId;\n\n moment.locale(i18next.language);\n\n const calculateAvailableDates = (date) => {\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n fetch(getMonthlyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((dateAvailables) => {\n let daysInMonth = getListDaysInMonth(date ? date : new Date());\n\n //Filtro solo i giorni disponibili\n const elements = dateAvailables.filter(\n (item) => item.available == true,\n );\n\n //Conto quandi gionri disponibili ci sono\n const countAllElmAvailable = elements.length;\n if (countAllElmAvailable === 0) {\n resetValue();\n }\n\n let calculateAvailableDates = [];\n daysInMonth.forEach((day) => {\n if (\n dateAvailables.some(\n (item) => item.date === day && item.available == true,\n )\n ) {\n calculateAvailableDates.push({ available: true, date: day });\n } else {\n calculateAvailableDates.push({ available: false, date: day });\n }\n });\n const dates = calculateAvailableDates.map((el) => {\n if (el.available === false) {\n return moment(el.date, \"YYYY-MM-DD\").toDate();\n }\n });\n setDisabledDates(dates);\n // Seleziono il primo giorno disponibile\n const firstDayAvailable = elements.length ? elements[0].date : date;\n\n getDaysSlot(firstDayAvailable);\n })\n .catch((error) => console.error(error));\n };\n\n const getDaysSlot = (date) => {\n setActiveSlot(null);\n setSelectedData(null);\n setDaysSlot([]);\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n\n fetch(getDailyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((daysSlot) => {\n const elements = daysSlot.filter((item) => item.availability == true);\n setFirstAvailableSlot(elements[0]);\n if (elements.length > 0) {\n setDaysSlot(daysSlot);\n setNoAvailableSlot(false);\n //Seleziono la data testuale sulla colonna degli slots\n setSelectedData(moment(date).format(\"L\"));\n //Seleziono la data sul calendario\n setSelected(moment(date, \"YYYY-MM-DD\").toDate());\n } else {\n //Seleziono la data sul calendario\n if (daysSlot.length > 0) {\n setSelected(moment(daysSlot[0].date, \"YYYY-MM-DD\").toDate());\n }\n setDaysSlot([]);\n resetValue();\n }\n });\n };\n\n const saveRenderData = () => {\n if (calendarID !== \"\" && calendarID != null) {\n if (!current.dataValue) {\n calculateAvailableDates(new Date());\n } else {\n if (component.multiple && Array.isArray(current.dataValue)) {\n if (current.dataValue.length > 0) {\n setRenderData(current.dataValue);\n let parseListMeeting = [];\n current.dataValue.map((item) => {\n parseListMeeting.push({\n ...item,\n date: moment(item.date, \"YYYY-MM-DD\").format(\"DD-MM-YYYY\"),\n });\n });\n setListMeeting(parseListMeeting);\n }\n } else if (\n !component.multiple &&\n typeof current.dataValue === \"object\"\n ) {\n const renderData = {\n date: current.dataValue.date,\n slot: current.dataValue.slot,\n };\n const parseListMeeting = {\n ...current.dataValue,\n date: moment(current.dataValue.date, \"YYYY-MM-DD\").format(\n \"DD-MM-YYYY\",\n ),\n };\n setListMeeting([parseListMeeting]);\n setRenderData(renderData);\n } else {\n let explodedValue = current.dataValue\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n const renderData = {\n date: moment(explodedValue[0], \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: explodedValue[1],\n };\n\n if (component.multiple) {\n onChange([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n } else {\n onChange({\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n });\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n }\n setRenderData(renderData);\n }\n }\n }\n };\n\n useEffect(() => {\n window.FormioInstance?.formReady.then(() => {\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n });\n }, []);\n\n const getListDaysInMonth = (date) => {\n let monthDate = moment(date, \"YYYY-MM\");\n let daysInMonth = monthDate.daysInMonth();\n let arrDays = [];\n\n while (daysInMonth) {\n let current = moment(date).date(daysInMonth);\n arrDays.push(current.format(\"YYYY-MM-DD\"));\n daysInMonth--;\n }\n return arrDays;\n };\n\n const getMonthlyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities`;\n\n let queryParameters = [\n `from_time=${moment(date).startOf(\"month\").format(\"YYYY-MM-DD\")}`,\n `to_time=${moment(date).endOf(\"month\").format(\"YYYY-MM-DD\")}`,\n ];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n // filter availabilities by selected opening-hours (this is mandatory in case of overlapped opening hours)\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n return `${url}?${queryParameters.join(\"&\")}`;\n };\n\n const getDailyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n const formattedDate = moment(date).format(\"YYYY-MM-DD\");\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities/${formattedDate}`;\n\n let queryParameters = [];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n //if (this.meeting) {\n // Exclude saved meeting from unavailabilities\n // queryParameters.push(`exclude=${this.meeting}`);\n // }\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n if (queryParameters) {\n url = `${url}?${queryParameters.join(\"&\")}`;\n }\n\n return url;\n };\n\n const onMonthChange = (data) => {\n calculateAvailableDates(data);\n };\n\n const onDayClick = (data) => {\n setTimeout(() => {\n toggleModal(!isOpen);\n },1000)\n getDaysSlot(data);\n\n };\n\n const onClickSelectDate = (element) => {\n setActiveSlot(null);\n setTimeout(() => {\n if (element) {\n setSlotSelected(element.target.dataset);\n setActiveSlot(element.target.id);\n }\n }, 300);\n };\n\n const createOrUpdateMeeting = (valueSlot) => {\n setDraftMeeting(null);\n\n let url = `${baseUrl()}/it/meetings/new-draft`,\n dataMeet = {\n date: slotSelected?.date\n ? moment(slotSelected?.date).format(\"DD-MM-YYYY\")\n : moment(valueSlot.target.dataset.date).format(\"DD-MM-YYYY\"),\n slot:\n slotSelected?.value_start && slotSelected?.value_end\n ? slotSelected.value_start + \"-\" + slotSelected.value_end\n : valueSlot.target.dataset.slots,\n calendar: component.calendarId,\n opening_hour: slotSelected?.opening_hour\n ? slotSelected?.opening_hour\n : valueSlot.target.dataset.opening_hour,\n meeting: draftMeeting ? draftMeeting.id : \"\",\n first_available_date: firstAvailableSlot.date,\n first_available_start_time: firstAvailableSlot.start_time,\n first_available_end_time: firstAvailableSlot.end_time,\n first_availability_updated_at: moment().format(),\n };\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(dataMeet),\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n },\n strictErrors: true,\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(i18next.t(\"Intervallo selezionato non disponibile!\"));\n }\n return response.json();\n })\n .then((draftMeet) => {\n setDraftMeeting(draftMeet);\n const updateMeeting = {\n //...dataMeet,\n date: dataMeet.date,\n slot: dataMeet.slot,\n calendar_id: dataMeet.calendar[0],\n opening_hour_id: dataMeet.opening_hour || dataMeet.opening_hour_id,\n meeting_id: draftMeet.id,\n };\n setListMeeting([...listMeeting, updateMeeting]);\n })\n .catch((e) => {\n console.log(e);\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n };\n\n const handleConfirmMeeting = () => {\n if (slotSelected) {\n //Creo l'appuntamento in bozza\n createOrUpdateMeeting();\n toggleModal(!isOpen);\n }\n };\n\n const Completionist = () => (\n <span>{i18next.t(\"Tempo prenotazione scaduto!\")}</span>\n );\n\n // Renderer CountDown callback with condition\n const renderer = ({ minutes, seconds, completed }) => {\n if (completed) {\n // Render a completed state\n return <Completionist />;\n } else {\n // Render a countdown\n return (\n <div>\n <div>\n {\" \"}\n <span>\n {\" \"}\n <i>\n {i18next.t(\n \"Per confermare la prenotazione che ti abbiamo riservato procedi con l’invio di questa pratica e con il pagamento (se richiesto) di quanto previsto entro\",\n )}\n :\n </i>{\" \"}\n <b>\n {minutes} {i18next.t(\"minuti\")} {seconds} {i18next.t(\"secondi\")}\n </b>\n </span>\n </div>\n </div>\n );\n }\n };\n\n const handleFromTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue > convertTimeInInteger(slotSelected.end)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_start: e.target.value });\n }\n };\n\n const handleToTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue < convertTimeInInteger(slotSelected.start)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_end: e.target.value });\n }\n };\n\n // Imposto il valore del calendario per formio\n /**\n * @param {string} value\n */\n const setValueCalendar = (value) => {\n if (value === null || value === \"\") {\n //Faccio reset del valore di formio\n onChange(\"\");\n } else {\n if (Array.isArray(value) && value.length > 0) {\n let valueMeetings = [];\n listMeeting.map((meeting) => {\n valueMeetings.push({\n date: moment(meeting.date, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: meeting.slot,\n calendar_id: meeting.calendar_id || meeting.calendar[0],\n meeting_id: meeting.meeting_id,\n opening_hour_id: meeting.opening_hour || meeting.opening_hour_id,\n });\n });\n if (component.multiple) {\n onChange(valueMeetings);\n } else {\n onChange(valueMeetings[0]);\n }\n } else {\n onChange(\"\");\n }\n }\n };\n\n //Reset dei valori di prenotazione\n const resetValue = () => {\n setNoAvailableSlot(true);\n setDraftMeeting(null);\n setSelectedData(null);\n setValueCalendar(null);\n };\n\n // Recupero il locale per il comp. DayPicker\n const getCurrentLocale = () => {\n if (i18next.language === \"it\") {\n return it;\n } else if (i18next.language === \"en\") return enGB;\n else if (i18next.language === \"de\") return de;\n };\n\n useEffect(() => {\n setValueCalendar(listMeeting);\n }, [listMeeting]);\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n } else {\n setRenderDataReadOnly(false);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n }\n }, []);\n\n const removeItem = (index, meeting) => {\n let url = `${baseUrl()}/api/meetings/${meeting.meeting_id}`;\n\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n }).then((response) => {\n if (response && response.status > 400) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante la cancellazione dello slot\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n const newArray = [\n ...listMeeting.slice(0, index),\n ...listMeeting.slice(index + 1),\n ];\n setListMeeting(newArray);\n calculateAvailableDates(new Date());\n }\n });\n };\n\n return (\n <>\n {renderDataReadOnly && renderData ? (\n <div className=\"my-5 mx-2 d-print-block d-preview-calendar d-preview-calendar-none\">\n <b>\n {Array.isArray(renderData) && renderData.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {Array.isArray(renderData) ? (\n renderData.map((data) => (\n <DaySelected\n day={moment(data.date, \"DD-MM-YYYY\").format(\"DD/MM/YYYY\")}\n i18next={i18next}\n slot={data.slot}\n ></DaySelected>\n ))\n ) : (\n <DaySelected\n day={moment(renderData.date, \"DD-MM-YYYY\").format(\n \"DD/MM/YYYY\",\n )}\n i18next={i18next}\n slot={renderData.slot}\n ></DaySelected>\n )}\n </ul>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"slot-calendar \">\n <div className=\"row\">\n {component.multiple ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n />\n <p>\n {i18next.t(\n \"Seleziona un'altra data nel calendario per aggiungere una nuova prenotazione\",\n )}\n </p>\n </div>\n </div>\n ) : listMeeting.length !== 1 ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n />\n <p>\n {\" \"}\n {i18next.t(\n \"Seleziona un'altra data nel calendario per aggiungere una nuova prenotazione\",\n )}\n </p>\n </div>\n </div>\n ) : null}\n <div className=\"col-12\">\n {listMeeting.length ? (\n <div className={\"row m-2\"}>\n <div className={\"col-12 mb-4\"}>\n <b>\n {listMeeting.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :{\" \"}\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {listMeeting.map((meeting, index) => {\n return (\n <li key={\"li\" + index}>\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n {meeting.date}{\" \"}\n {slotSelected || meeting.slot\n ? `${i18next.t(\"alle\")} ${meeting.slot}`\n : \"\"}\n </span>\n <Icon\n icon={\"it-delete\"}\n onClick={() => removeItem(index, meeting)}\n role={\"button\"}\n />\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n {draftMeeting ? (\n <Alert\n color={\"info\"}\n defaultValue={\"string\"}\n className={\"d-print-none d-preview-calendar-none\"}\n >\n <Countdown\n date={draftMeeting.expiration_time}\n renderer={renderer}\n ></Countdown>\n </Alert>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n )}\n <Modal\n isOpen={isOpen}\n toggle={() => toggleModal(!isOpen)}\n labelledBy=\"daySelected\"\n size={\"lg\"}\n centered\n container={document.body}\n >\n <ModalHeader toggle={() => toggleModal(!isOpen)} id=\"daySelected\">\n {i18next.t(\"Seleziona una fascia oraria\")}\n </ModalHeader>\n {!noAvailableSlot ? (\n <div className=\"title-xsmall u-grey-dark px-4\">\n {\" \"}\n {i18next.t(\n \"Seleziona una fascia oraria e, se necessario, utilizza l'apposito controllo per accorciare la durata della prenotazione, Poi clicca su Conferma\",\n )}\n </div>\n ) : null}\n <ModalBody>\n <div className=\"row\">\n {listMeeting.length >= 1 ? (\n <div>\n {selectedData && !noAvailableSlot ? (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n ) : null}\n <div className=\"calendar-last-selection col-12 pt-2 mb-5\">\n <small className=\"pl-2 mb-2 d-flex px-2\">\n <b>\n <Icon\n icon={\"it-clock\"}\n className={\"mr-1\"}\n size={\"sm\"}\n ></Icon>{\" \"}\n {i18next.t(\"Ultimo orario selezionato\")}\n </b>\n </small>\n <div className=\"col-6 px-2\">\n <button\n type=\"button\"\n id={\"slot-last-selection\"}\n onClick={onClickSelectDate}\n tabIndex=\"1\"\n className={\n activeSlot === \"slot-last-selection\"\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n // data-date={listMeeting[listMeeting.length - 1].date}\n data-date={moment(selectedData, \"DD/MM/YYYY\").format(\n \"YYYY-MM-DD\",\n )}\n data-slots={listMeeting[listMeeting.length - 1].slot}\n data-opening_hour={\n listMeeting[listMeeting.length - 1].opening_hour_id\n }\n data-start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n data-value_start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-value_end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n disabled={noAvailableSlot}\n >\n {listMeeting[listMeeting.length - 1].slot}\n </button>\n </div>\n </div>\n </div>\n ) : null}\n <div>\n {selectedData && listMeeting.length >= 1 ? (\n <h6>{i18next.t(\"Seleziona altri orari\")}</h6>\n ) : noAvailableSlot ? null : (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n )}\n </div>\n {daysSlot.map((slot, index) => (\n <div className=\"col-6\" key={\"slot-\" + index}>\n <button\n type=\"button\"\n id={\"slot-\" + index}\n onClick={onClickSelectDate}\n ref={refButtonSlot}\n className={\n activeSlot === \"slot-\" + index\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n tabIndex=\"1\"\n data-date={slot.date}\n data-start={slot.start_time}\n data-end={slot.end_time}\n data-value_start={slot.start_time}\n data-value_end={slot.end_time}\n data-slots={slot.start_time + \"-\" + slot.end_time}\n data-opening_hour={slot.opening_hour}\n data-min_duration={slot.min_duration}\n disabled={slot.slots_available == 0}\n >\n {slot.start_time} - {slot.end_time}\n </button>\n </div>\n ))}\n {noAvailableSlot ? (\n <div className=\"callout callout-highlight warning\">\n <div className=\"callout-title\">\n <Icon aria-hidden icon=\"it-help-circle\" />\n {i18next.t(\"Attenzione\")}\n </div>\n <p>\n {\" \"}\n {i18next.t(\n \"Non è possibile prenotare per la data selezionata\",\n )}\n .\n </p>\n </div>\n ) : null}\n\n <div className=\"col-12\">\n {/* <div\n className=\"mt-3 d-print-block d-preview-calendar px-4 d-none\">{selectedData ?\n <div>\n <b>{i18next.t('Giorno selezionato per la prenotazione')}: </b> {selectedData} {slotSelected ? `${i18next.t('alle')} ${slotSelected.value_start}-${slotSelected.value_end}` : ''}\n </div> : null}</div>*/}\n\n {slotSelected?.value_start && activeSlot ? (\n <div className={\"row\"}>\n <div className={\"col-12 mb-3\"}>\n <p className={\"mb-3\"}>\n <b>\n {i18next.t(\n \"Se necessario, utilizza il controllo che segue per accorciare la durata della prenotazione\",\n )}\n </b>\n </p>\n </div>\n\n <div className={\"col-12 col-md-6 mb-4\"}>\n <Input\n type=\"time\"\n label={i18next.t(\"Dalle\")}\n className=\"active\"\n defaultValue={\n slotSelected.value_start || slotSelected.start\n }\n min={slotSelected.start}\n max={slotSelected.end}\n onBlur={handleFromTime}\n />\n </div>\n\n <div className={\"col-12 col-md-6 mb-4\"}>\n <Input\n type=\"time\"\n label={i18next.t(\"alle\")}\n className=\"active\"\n defaultValue={slotSelected.value_end || slotSelected.end}\n onBlur={handleToTime}\n min={slotSelected.start}\n max={slotSelected.end}\n />\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </ModalBody>\n\n <ModalFooter>\n <Button\n color=\"primary\"\n onClick={() => handleConfirmMeeting()}\n disabled={!selectedData || !slotSelected?.value_start}\n >\n {i18next.t(\"Conferma\")}\n </Button>\n </ModalFooter>\n </Modal>\n </>\n );\n};\n\nexport default class FormioDynamicCalendar extends ReactComponent {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Dynamic Calendar\",\n group: \"basic\",\n icon: \"bi bi-calendar-plus\",\n documentation: \"\",\n weight: 70,\n schema: FormioDynamicCalendar.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return ReactComponent.schema({\n type: \"dynamic_calendar\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attachReact(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactDynamicCalendar\n ref={ref}\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />,\n );\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n\n if (Array.isArray(value)) {\n this.selectedNextSlots = value;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else if (typeof value === \"object\") {\n this.date = value.date;\n this.slot = value.slot;\n this.meeting = value.meeting_id;\n this.meeting_expiration_time = null;\n this.opening_hour = value.opening_hour_id;\n this.calendar_id = value.calendar_id;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else {\n let explodedValue = value\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n this.date = explodedValue[0];\n this.slot = explodedValue[1];\n this.meeting = explodedCalendar[1];\n this.meeting_expiration_time = null;\n this.opening_hour =\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\";\n\n this.updateValue({\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: this.meeting,\n opening_hour_id: this.opening_hour,\n });\n }\n }\n\n getValue() {\n if (\n !(this.date && this.slot && this.meeting && this.opening_hour) &&\n !(this.selectedNextSlots && this.selectedNextSlots.length > 0)\n ) {\n // Unset value (needed for calendars with 'required' option\"\n return null;\n }\n let meeting_id = this.meeting ? this.meeting : \"\";\n let opening_hour = this.opening_hour ? this.opening_hour : \"\";\n\n if (this.component.multiple) {\n return this.selectedNextSlots;\n }\n\n return {\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: meeting_id,\n opening_hour_id: opening_hour,\n };\n\n /* return `${this.date.replace(/-/g, \"/\")} @ ${this.slot} (${\n this.component.calendarId\n }#${meeting_id}#${opening_hour})`;*/\n // return super.getValue();\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n}\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n type: \"select\",\n label: \"Nome Calendario\",\n key: \"calendarId\",\n input: true,\n weight: 1,\n placeholder: \"Nome Calendario\",\n tooltip: \"Inserisci il nome del calendario\",\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars?type=time_fixed_slots\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.title }}</span>\",\n selectValues: \"Results\",\n },\n {\n type: \"checkbox\",\n label: \"Seleziona orari di apertura\",\n key: \"select_opening_hours\",\n input: true,\n weight: 1,\n tooltip: \"Abilita per selezionare i singoli orari di apertura\",\n defaultValue: false,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n type: \"select\",\n label: \"Orari di apertura\",\n key: \"opening_hours\",\n input: true,\n weight: 1,\n placeholder: \"Seleziona gli orari di apertura\",\n tooltip: \"Seleziona gli orari di apertura\",\n multiple: true,\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars/{{data.calendarId}}/opening-hours\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.name }}</span>\",\n selectValues: \"results\",\n conditional: {\n show: true,\n when: \"select_opening_hours\",\n eq: \"true\",\n },\n },\n {\n label: \"Api Url\",\n redrawOn: \"data\",\n calculateValue:\n \"if (data.calendarId) {\\n\" +\n \" let url = data.url + '/api/calendars/' + data.calendarId + '/overlaps';\\n\" +\n \" if (data.select_opening_hours && data.opening_hours.length > 0) {\\n\" +\n ' let qs = \"?opening_hours=\" + data.opening_hours.join();\\n' +\n \" url = url + qs;\\n\" +\n \" }\\n\" +\n \" if (data.api_url !== url) value = url;\\n\" +\n \"} else {url = ''}\",\n key: \"api_url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n label: \"Sovrapposizioni\",\n inputFormat: \"plain\",\n redrawOn: \"api_url\",\n calculateValue:\n \"\" +\n \"function loadJSON(path, success, error){\\n\" +\n \" var xhr = new XMLHttpRequest();\\n\" +\n \" xhr.onreadystatechange = function() {\\n\" +\n \" if (xhr.readyState === XMLHttpRequest.DONE) {\\n\" +\n \" if (xhr.status === 200) {\\n\" +\n \" let responseData = JSON.parse(xhr.response);\\n\" +\n \" success(responseData.count);\\n\" +\n \" } else {\\n\" +\n \" error();\\n\" +\n \" }\\n\" +\n \" }\" +\n \" }\\n\" +\n ' xhr.open(\"GET\", path, true);\\n' +\n \" xhr.send();\\n\" +\n \"}\\n\" +\n \"if(data.calendarId && data.api_url){\\n\" +\n \" var url = data.api_url;\\n\" +\n \" loadJSON(url,\\n\" +\n \" function(count) {\\n\" +\n \" data.overlaps_validation = count; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = count;\\n\" +\n \" },\\n\" +\n \" function() {\\n\" +\n \" data.overlaps_validation = -1; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = -1;\\n\" +\n \" }\\n\" +\n \" );\\n\" +\n \"}\",\n validateOn: \"change\",\n validate: {\n customMessage: \"Vi sono sovrapposizioni negli orari di apertura\",\n custom:\n \"\" +\n \"if (document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value === '0') {\" +\n \"valid=true\" +\n \"} else {\" +\n \"valid = 'Sovrapposizione';\" +\n \"}\",\n },\n key: \"overlaps_validation\",\n attributes: {\n readonly: \"true\",\n },\n required: true,\n type: \"number\",\n input: true,\n weight: 1,\n },\n {\n label: \"Precisione minima (minuti)\",\n defaultValue: 1,\n required: true,\n inputFormat: \"plain\",\n key: \"range_step\",\n type: \"number\",\n input: true,\n weight: 1,\n },\n];\n","import { Components } from \"@formio/react\";\nimport DynamicCalendarEdit from \"./Calendar.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: DynamicCalendarEdit,\n },\n ],\n ...extend,\n );\n}\n","import React from \"react\";\n\nfunction DaySelected({ day, slot, i18next }) {\n return (\n <li className=\"it-list-item\">\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n <b>{day}</b> {i18next.t(\"alle\")} {i18next.t(\"ore\")} <b>{slot}</b>\n </span>\n </div>\n </div>\n </li>\n );\n}\n\nexport default DaySelected;\n","import editForm from \"./Calendar.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { ReactComponent } from \"@formio/react\";\nimport { createRoot } from \"react-dom/client\";\nimport { DayPicker } from \"react-day-picker\";\nimport Countdown from \"react-countdown\";\nimport \"react-day-picker/style.css\";\nimport { it, de, enGB } from \"date-fns/locale\";\nimport moment from \"moment\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport {\n Alert,\n Button,\n Icon,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from \"design-react-kit\";\nimport {\n convertIntegerToTime,\n convertTimeInInteger,\n} from \"../../class/ConvertTimeInInteger\";\nimport Swal from \"sweetalert2\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport DaySelected from \"./DaySelected\";\nimport dayjs from \"dayjs\";\n\nexport const ReactDynamicCalendar = ({\n component,\n current,\n onChange,\n i18next,\n}) => {\n //Data sul calendario selezionata\n const [selected, setSelected] = useState();\n\n //Date sul calendario disabilitate\n const [disabledDates, setDisabledDates] = useState([]);\n\n const [daysSlot, setDaysSlot] = useState([]);\n // Mostra errore se non ci sono date disponibili\n const [noAvailableSlot, setNoAvailableSlot] = useState(false);\n\n //Meeting id restituito dalla chiamata draft\n const [draftMeeting, setDraftMeeting] = useState(null);\n\n // Slot selezionato\n const [slotSelected, setSlotSelected] = useState(null);\n\n const [selectedData, setSelectedData] = useState(null);\n const [activeSlot, setActiveSlot] = useState(null);\n\n //Prima data disponibile del mese\n const [firstAvailableSlot, setFirstAvailableSlot] = useState({});\n // Dato caledario sola lettura\n const [renderData, setRenderData] = useState(null);\n\n //Modale\n const [isOpen, toggleModal] = useState(false);\n\n //Lista meeting\n const [listMeeting, setListMeeting] = useState([]);\n\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n\n const refButtonSlot = useRef();\n\n const calendarID = component.calendarId;\n\n moment.locale(i18next.language);\n\n const calculateAvailableDates = (date) => {\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n fetch(getMonthlyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((dateAvailables) => {\n let daysInMonth = getListDaysInMonth(date ? date : new Date());\n\n //Filtro solo i giorni disponibili\n const elements = dateAvailables.filter(\n (item) => item.available == true,\n );\n\n //Conto quandi gionri disponibili ci sono\n const countAllElmAvailable = elements.length;\n if (countAllElmAvailable === 0) {\n resetValue();\n }\n\n let calculateAvailableDates = [];\n daysInMonth.forEach((day) => {\n if (\n dateAvailables.some(\n (item) => item.date === day && item.available == true,\n )\n ) {\n calculateAvailableDates.push({ available: true, date: day });\n } else {\n calculateAvailableDates.push({ available: false, date: day });\n }\n });\n const dates = calculateAvailableDates.map((el) => {\n if (el.available === false) {\n return moment(el.date, \"YYYY-MM-DD\").toDate();\n }\n });\n setDisabledDates(dates);\n // Seleziono il primo giorno disponibile\n const firstDayAvailable = elements.length ? elements[0].date : date;\n\n getDaysSlot(firstDayAvailable);\n })\n .catch((error) => console.error(error));\n };\n\n const getDaysSlot = (date) => {\n setActiveSlot(null);\n setSelectedData(null);\n setDaysSlot([]);\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n\n fetch(getDailyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((daysSlot) => {\n const elements = daysSlot.filter((item) => item.availability == true);\n setFirstAvailableSlot(elements[0]);\n if (elements.length > 0) {\n setDaysSlot(daysSlot);\n setNoAvailableSlot(false);\n //Seleziono la data testuale sulla colonna degli slots\n setSelectedData(moment(date).format(\"L\"));\n //Seleziono la data sul calendario\n setSelected(moment(date, \"YYYY-MM-DD\").toDate());\n } else {\n //Seleziono la data sul calendario\n if (daysSlot.length > 0) {\n setSelected(moment(daysSlot[0].date, \"YYYY-MM-DD\").toDate());\n }\n setDaysSlot([]);\n resetValue();\n }\n });\n };\n\n const saveRenderData = () => {\n if (calendarID !== \"\" && calendarID != null) {\n if (!current.dataValue) {\n calculateAvailableDates(new Date());\n } else {\n if (component.multiple && Array.isArray(current.dataValue)) {\n if (current.dataValue.length > 0) {\n setRenderData(current.dataValue);\n let parseListMeeting = [];\n current.dataValue.map((item) => {\n parseListMeeting.push({\n ...item,\n date: moment(item.date, \"YYYY-MM-DD\").format(\"DD-MM-YYYY\"),\n });\n });\n setListMeeting(parseListMeeting);\n }\n } else if (\n !component.multiple &&\n typeof current.dataValue === \"object\"\n ) {\n const renderData = {\n date: current.dataValue.date,\n slot: current.dataValue.slot,\n };\n const parseListMeeting = {\n ...current.dataValue,\n date: moment(current.dataValue.date, \"YYYY-MM-DD\").format(\n \"DD-MM-YYYY\",\n ),\n };\n setListMeeting([parseListMeeting]);\n setRenderData(renderData);\n } else {\n let explodedValue = current.dataValue\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n const renderData = {\n date: moment(explodedValue[0], \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: explodedValue[1],\n };\n\n if (component.multiple) {\n onChange([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n } else {\n onChange({\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n });\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n }\n setRenderData(renderData);\n }\n }\n }\n };\n\n useEffect(() => {\n window.FormioInstance?.formReady.then(() => {\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n });\n }, []);\n\n const getListDaysInMonth = (date) => {\n let monthDate = moment(date, \"YYYY-MM\");\n let daysInMonth = monthDate.daysInMonth();\n let arrDays = [];\n\n while (daysInMonth) {\n let current = moment(date).date(daysInMonth);\n arrDays.push(current.format(\"YYYY-MM-DD\"));\n daysInMonth--;\n }\n return arrDays;\n };\n\n const getMonthlyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities`;\n\n let queryParameters = [\n `from_time=${moment(date).startOf(\"month\").format(\"YYYY-MM-DD\")}`,\n `to_time=${moment(date).endOf(\"month\").format(\"YYYY-MM-DD\")}`,\n ];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n // filter availabilities by selected opening-hours (this is mandatory in case of overlapped opening hours)\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n return `${url}?${queryParameters.join(\"&\")}`;\n };\n\n const getDailyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n const formattedDate = moment(date).format(\"YYYY-MM-DD\");\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities/${formattedDate}`;\n\n let queryParameters = [];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n //if (this.meeting) {\n // Exclude saved meeting from unavailabilities\n // queryParameters.push(`exclude=${this.meeting}`);\n // }\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n if (queryParameters) {\n url = `${url}?${queryParameters.join(\"&\")}`;\n }\n\n return url;\n };\n\n const onMonthChange = (data) => {\n calculateAvailableDates(data);\n };\n\n const onDayClick = (data) => {\n setTimeout(() => {\n toggleModal(!isOpen);\n },1000)\n\n getDaysSlot(data);\n };\n\n const onClickSelectDate = (element) => {\n setActiveSlot(null);\n setTimeout(() => {\n if (element) {\n setSlotSelected(element.target.dataset);\n setActiveSlot(element.target.id);\n }\n }, 300);\n };\n\n const createOrUpdateMeeting = (valueSlot) => {\n setDraftMeeting(null);\n\n let url = `${baseUrl()}/it/meetings/new-draft`,\n dataMeet = {\n date: slotSelected?.date\n ? moment(slotSelected?.date).format(\"DD-MM-YYYY\")\n : moment(valueSlot.target.dataset.date).format(\"DD-MM-YYYY\"),\n slot:\n slotSelected?.value_start && slotSelected?.value_end\n ? slotSelected.value_start + \"-\" + slotSelected.value_end\n : valueSlot.target.dataset.slots,\n calendar: component.calendarId,\n opening_hour: slotSelected?.opening_hour\n ? slotSelected?.opening_hour\n : valueSlot.target.dataset.opening_hour,\n meeting: draftMeeting ? draftMeeting.id : \"\",\n first_available_date: firstAvailableSlot.date,\n first_available_start_time: firstAvailableSlot.start_time,\n first_available_end_time: firstAvailableSlot.end_time,\n first_availability_updated_at: moment().format(),\n };\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(dataMeet),\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n },\n strictErrors: true,\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(i18next.t(\"Intervallo selezionato non disponibile!\"));\n }\n return response.json();\n })\n .then((draftMeet) => {\n setDraftMeeting(draftMeet);\n const updateMeeting = {\n //...dataMeet,\n date: dataMeet.date,\n slot: dataMeet.slot,\n calendar_id: dataMeet.calendar[0],\n opening_hour_id: dataMeet.opening_hour || dataMeet.opening_hour_id,\n meeting_id: draftMeet.id,\n };\n setListMeeting([...listMeeting, updateMeeting]);\n })\n .catch((e) => {\n console.log(e);\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n };\n\n const handleConfirmMeeting = () => {\n if (slotSelected) {\n //Creo l'appuntamento in bozza\n createOrUpdateMeeting();\n toggleModal(!isOpen);\n }\n };\n\n const Completionist = () => (\n <span>{i18next.t(\"Tempo prenotazione scaduto!\")}</span>\n );\n\n // Renderer CountDown callback with condition\n const renderer = ({ minutes, seconds, completed }) => {\n if (completed) {\n // Render a completed state\n return <Completionist />;\n } else {\n // Render a countdown\n return (\n <div>\n <div>\n {\" \"}\n <span>\n {\" \"}\n <i>\n {i18next.t(\n \"Per confermare la prenotazione che ti abbiamo riservato procedi con l’invio di questa pratica e con il pagamento (se richiesto) di quanto previsto entro\",\n )}\n :\n </i>{\" \"}\n <b>\n {minutes} {i18next.t(\"minuti\")} {seconds} {i18next.t(\"secondi\")}\n </b>\n </span>\n </div>\n </div>\n );\n }\n };\n\n const handleFromTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue > convertTimeInInteger(slotSelected.end)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_start: e.target.value });\n }\n };\n\n const handleToTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue < convertTimeInInteger(slotSelected.start)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_end: e.target.value });\n }\n };\n\n // Imposto il valore del calendario per formio\n /**\n * @param {string} value\n */\n const setValueCalendar = (value) => {\n if (value === null || value === \"\") {\n //Faccio reset del valore di formio\n onChange(\"\");\n } else {\n if (Array.isArray(value) && value.length > 0) {\n let valueMeetings = [];\n listMeeting.map((meeting) => {\n valueMeetings.push({\n date: moment(meeting.date, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: meeting.slot,\n calendar_id: meeting.calendar_id || meeting.calendar[0],\n meeting_id: meeting.meeting_id,\n opening_hour_id: meeting.opening_hour || meeting.opening_hour_id,\n });\n });\n if (component.multiple) {\n onChange(valueMeetings);\n } else {\n onChange(valueMeetings[0]);\n }\n } else {\n onChange(\"\");\n }\n }\n };\n\n //Reset dei valori di prenotazione\n const resetValue = () => {\n setNoAvailableSlot(true);\n setDraftMeeting(null);\n setSelectedData(null);\n setValueCalendar(null);\n };\n\n // Recupero il locale per il comp. DayPicker\n const getCurrentLocale = () => {\n if (i18next.language === \"it\") {\n return it;\n } else if (i18next.language === \"en\") return enGB;\n else if (i18next.language === \"de\") return de;\n };\n\n useEffect(() => {\n setValueCalendar(listMeeting);\n }, [listMeeting]);\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n } else {\n setRenderDataReadOnly(false);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n }\n }, []);\n\n const removeItem = (index, meeting) => {\n\n let url = `${baseUrl()}/api/meetings/${meeting.meeting_id}`;\n\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n }).then((response) => {\n if (response && response.status > 400) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante la cancellazione dello slot\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n const newArray = [\n ...listMeeting.slice(0, index),\n ...listMeeting.slice(index + 1),\n ];\n setListMeeting(newArray);\n calculateAvailableDates(new Date());\n }\n });\n };\n\n return (\n <>\n {renderDataReadOnly && renderData ? (\n <div className=\"my-5 mx-2 d-print-block d-preview-calendar d-preview-calendar-none\">\n <b>\n {Array.isArray(renderData) && renderData.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {Array.isArray(renderData) ? (\n renderData.map((data) => (\n <DaySelected\n day={moment(data.date, \"DD-MM-YYYY\").format(\"DD/MM/YYYY\")}\n i18next={i18next}\n slot={data.slot}\n ></DaySelected>\n ))\n ) : (\n <DaySelected\n day={dayjs(renderData.date).format(\n \"DD/MM/YYYY\",\n )}\n i18next={i18next}\n slot={renderData.slot}\n ></DaySelected>\n )}\n </ul>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"slot-calendar \">\n <div className=\"row\">\n {component.multiple ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n\n />\n </div>\n </div>\n ) : listMeeting.length !== 1 ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n\n />\n </div>\n </div>\n ) : null}\n <div className=\"col-12\">\n {listMeeting.length ? (\n <div className={\"row m-2\"}>\n <div className={\"col-12 mb-4\"}>\n <b>\n {listMeeting.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :{\" \"}\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {listMeeting.map((meeting, index) => {\n return (\n <li key={\"li\" + index}>\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n {meeting.date}{\" \"}\n {slotSelected || meeting.slot\n ? `${i18next.t(\"alle\")} ${meeting.slot}`\n : \"\"}\n </span>\n <Icon\n icon={\"it-delete\"}\n onClick={() => removeItem(index, meeting)}\n role={\"button\"}\n />\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n {draftMeeting ? (\n <Alert\n color={\"info\"}\n defaultValue={\"string\"}\n className={\"d-print-none d-preview-calendar-none\"}\n >\n <Countdown\n date={draftMeeting.expiration_time}\n renderer={renderer}\n ></Countdown>\n </Alert>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n )}\n <Modal\n isOpen={isOpen}\n toggle={() => toggleModal(!isOpen)}\n labelledBy=\"daySelected\"\n size={\"lg\"}\n centered\n container={document.body}\n >\n <ModalHeader toggle={() => toggleModal(!isOpen)} id=\"daySelected\">\n {i18next.t(\"Seleziona una fascia oraria\")}\n </ModalHeader>\n <ModalBody>\n <div className=\"row\">\n {listMeeting.length >= 1 ? (\n <div>\n {selectedData && !noAvailableSlot ? (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n ) : null}\n <div className=\"calendar-last-selection col-12 pt-2 mb-5\">\n <small className=\"pl-2 mb-2 d-flex px-2\">\n <b>\n <Icon\n icon={\"it-clock\"}\n className={\"mr-1\"}\n size={\"sm\"}\n ></Icon>{\" \"}\n {i18next.t(\"Ultimo orario selezionato\")}\n </b>\n </small>\n <div className=\"col-6 px-2\">\n <button\n type=\"button\"\n id={\"slot-last-selection\"}\n onClick={onClickSelectDate}\n tabIndex=\"1\"\n className={\n activeSlot === \"slot-last-selection\"\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n // data-date={listMeeting[listMeeting.length - 1].date}\n data-date={moment(selectedData, \"DD/MM/YYYY\").format(\n \"YYYY-MM-DD\",\n )}\n data-slots={listMeeting[listMeeting.length - 1].slot}\n data-opening_hour={\n listMeeting[listMeeting.length - 1].opening_hour_id\n }\n data-start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n data-value_start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-value_end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n disabled={noAvailableSlot}\n >\n {listMeeting[listMeeting.length - 1].slot}\n </button>\n </div>\n </div>\n </div>\n ) : null}\n <div>\n {selectedData && listMeeting.length >= 1 ? (\n <h6>{i18next.t(\"Seleziona altri orari\")}</h6>\n ) : noAvailableSlot ? null : (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n )}\n </div>\n {daysSlot.map((slot, index) => (\n <div className=\"col-6\" key={\"slot-\" + index}>\n <button\n type=\"button\"\n id={\"slot-\" + index}\n onClick={onClickSelectDate}\n ref={refButtonSlot}\n className={\n activeSlot === \"slot-\" + index\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n tabIndex=\"1\"\n data-date={slot.date}\n data-start={slot.start_time}\n data-end={slot.end_time}\n data-value_start={slot.start_time}\n data-value_end={slot.end_time}\n data-slots={slot.start_time + \"-\" + slot.end_time}\n data-opening_hour={slot.opening_hour}\n data-min_duration={slot.min_duration}\n disabled={slot.slots_available == 0}\n >\n {slot.start_time} - {slot.end_time}\n </button>\n </div>\n ))}\n {noAvailableSlot ? (\n <div className=\"callout callout-highlight warning\">\n <div className=\"callout-title\">\n <Icon aria-hidden icon=\"it-help-circle\" />\n {i18next.t(\"Attenzione\")}\n </div>\n <p>\n {\" \"}\n {i18next.t(\n \"Non è possibile prenotare per la data selezionata\",\n )}\n .\n </p>\n </div>\n ) : null}\n </div>\n </ModalBody>\n\n <ModalFooter>\n <Button\n color=\"primary\"\n onClick={() => handleConfirmMeeting()}\n disabled={!selectedData || !slotSelected?.value_start}\n >\n {i18next.t(\"Conferma\")}\n </Button>\n </ModalFooter>\n </Modal>\n </>\n );\n};\n\nexport default class FormioDynamicCalendar extends ReactComponent {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Calendar\",\n group: \"basic\",\n icon: \"bi bi-calendar-plus\",\n documentation: \"\",\n weight: 70,\n schema: FormioDynamicCalendar.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return ReactComponent.schema({\n type: \"calendar\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attachReact(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactDynamicCalendar\n ref={ref}\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />,\n );\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n\n if (Array.isArray(value)) {\n this.selectedNextSlots = value;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else if (typeof value === \"object\") {\n this.date = value.date;\n this.slot = value.slot;\n this.meeting = value.meeting_id;\n this.meeting_expiration_time = null;\n this.opening_hour = value.opening_hour_id;\n this.calendar_id = value.calendar_id;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else {\n let explodedValue = value\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n this.date = explodedValue[0];\n this.slot = explodedValue[1];\n this.meeting = explodedCalendar[1];\n this.meeting_expiration_time = null;\n this.opening_hour =\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\";\n\n this.updateValue({\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: this.meeting,\n opening_hour_id: this.opening_hour,\n });\n }\n }\n\n getValue() {\n if (\n !(this.date && this.slot && this.meeting && this.opening_hour) &&\n !(this.selectedNextSlots && this.selectedNextSlots.length > 0)\n ) {\n // Unset value (needed for calendars with 'required' option\"\n return null;\n }\n let meeting_id = this.meeting ? this.meeting : \"\";\n let opening_hour = this.opening_hour ? this.opening_hour : \"\";\n\n if (this.component.multiple) {\n return this.selectedNextSlots;\n }\n\n return {\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: meeting_id,\n opening_hour_id: opening_hour,\n };\n\n /* return `${this.date.replace(/-/g, \"/\")} @ ${this.slot} (${\n this.component.calendarId\n }#${meeting_id}#${opening_hour})`;*/\n // return super.getValue();\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n}\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n }\n];\n","import { Components } from \"@formio/react\";\nimport CalendarAdvancedEdit from \"./CalendarAdvanced.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: CalendarAdvancedEdit,\n },\n ],\n ...extend,\n );\n}\n","import React from \"react\";\n\nfunction SlotSelected({ day, slot, i18next }) {\n return (\n <li className=\"it-list-item\">\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text-paragraph pl-4\">\n <b>{day}</b> {i18next.t(\"alle\")} {i18next.t(\"ore\")} <b>{slot}</b>\n </span>\n </div>\n </div>\n </li>\n );\n}\n\nexport default SlotSelected;\n","export function adjustSlotHeight(calendar, events) {\n if (!events || events.length === 0) return;\n\n // Calcola la durata di ogni evento (in minuti)\n const durations = events.map((e) => {\n const start = new Date(e.start);\n const end = new Date(e.end);\n return (end - start) / 60000; // minuti\n });\n\n const minDuration = Math.min(...durations);\n const avgDuration = durations.reduce((a, b) => a + b, 0) / durations.length;\n\n let dynamicHeight = 0;\n\n if (minDuration <= 30 && minDuration > 15) {\n dynamicHeight = avgDuration * 1; // 12px al minuto\n } else if (minDuration <= 15) {\n // Se ci sono slot molto brevi (<= 15 min), aumentiamo l'altezza minima\n dynamicHeight = avgDuration * 24; // 24px al minuto\n } else {\n // Altezza base calcolata sull'avgDuration\n dynamicHeight = avgDuration * 4; // px al minuto\n }\n\n // Aggiorna FullCalendar\n calendar.setOption(\"slotHeight\", dynamicHeight);\n\n // Aggiorna variabile CSS\n document.documentElement.style.setProperty(\n \"--slot-height\",\n `${dynamicHeight}px`\n );\n}\n","import dayjs from \"dayjs\";\n\n// Configurazione cache\nconst CACHE_CONFIG = {\n AVAILABILITY: {\n key: \"availability_data_cache_\",\n duration: 10, // minuti\n },\n SLOTS: {\n key: \"availability_slots_cache_\",\n duration: 10, // minuti\n },\n SUBMISSION: {\n key: \"submission_cache_\",\n duration: 30, // minuti\n }\n};\n\n// 🔑 Funzione generica di cache\nexport const setCachedData = (type, cacheKey, data) => {\n const cacheData = {\n data,\n timestamp: dayjs().toISOString(),\n };\n sessionStorage.setItem(cacheKey, JSON.stringify(cacheData));\n console.log(`✅ Cache salvato: ${type}`);\n};\n\n// 🔑 Funzione generica per leggere il cache\nexport const getCachedData = (type, cacheKey) => {\n try {\n const cached = sessionStorage.getItem(cacheKey);\n\n if (!cached) return null;\n\n const parsedCache = JSON.parse(cached);\n const cacheAge = dayjs().diff(\n dayjs(parsedCache.timestamp),\n \"minutes\"\n );\n\n if (cacheAge > CACHE_CONFIG[type].duration) {\n sessionStorage.removeItem(cacheKey);\n console.log(`⏰ Cache scaduto: ${type}`);\n return null;\n }\n\n console.log(`✅ Cache letto: ${type} (${cacheAge} minuti fa)`);\n return parsedCache.data;\n } catch (error) {\n console.error(`Errore nel leggere il cache (${type}):`, error);\n return null;\n }\n};\n\n// 🔑 Genera chiave di cache\nexport const generateCacheKey = (type, ...params) => {\n return CACHE_CONFIG[type].key + btoa(params);\n};\n\n\n// 🔑 Costanti per sessionStorage\nconst CALENDAR_VIEW_STATE_KEY = \"calendar_view_state\";\nconst CALENDAR_VIEW_DATE_KEY = \"calendar_view_date\";\n\n// 🔑 Helper per salvare/leggere lo stato della view\nexport const saveCalendarViewState = (viewType, date) => {\n try {\n sessionStorage.setItem(CALENDAR_VIEW_STATE_KEY, viewType);\n sessionStorage.setItem(CALENDAR_VIEW_DATE_KEY, date || new Date().toISOString());\n } catch (error) {\n console.error(\"Errore nel salvare lo stato della view:\", error);\n }\n};\n\nexport const getCalendarViewState = () => {\n try {\n const viewType = sessionStorage.getItem(CALENDAR_VIEW_STATE_KEY);\n const date = sessionStorage.getItem(CALENDAR_VIEW_DATE_KEY);\n return {\n viewType: viewType || \"timeGridWeek\",\n date: date ? new Date(date) : new Date(),\n };\n } catch (error) {\n console.error(\"Errore nel leggere lo stato della view:\", error);\n return {\n viewType: \"timeGridWeek\",\n date: new Date(),\n };\n }\n};\n\nexport const clearCalendarViewState = () => {\n try {\n sessionStorage.removeItem(CALENDAR_VIEW_STATE_KEY);\n sessionStorage.removeItem(CALENDAR_VIEW_DATE_KEY);\n } catch (error) {\n console.error(\"Errore nel pulire lo stato della view:\", error);\n }\n};\n\nexport const clearAvailabilityCache = () => {\n try {\n Object.keys(sessionStorage).forEach((key) => {\n if (\n key.startsWith(\"availability_data_cache_\") ||\n key.startsWith(\"availability_slots_cache_\") || \n key.startsWith(\"submission_cache_\")\n ) {\n sessionStorage.removeItem(key);\n }\n });\n } catch (error) {\n console.error(\"Errore nel pulire il cache disponibilita:\", error);\n }\n};\n\n\nexport const clearSlotCache = () => {\n try {\n Object.keys(sessionStorage).forEach((key) => {\n if (\n key.startsWith(\"availability_slots_cache_\")\n ) {\n sessionStorage.removeItem(key);\n }\n });\n } catch (error) {\n console.error(\"Errore nel pulire il cache disponibilita:\", error);\n }\n};\n","import editForm from \"./CalendarAdvanced.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Component, Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport moment from \"moment\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport Swal from \"sweetalert2\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport SlotSelected from \"./SlotSelected\";\nimport dayjs from \"dayjs\";\nimport { createCalendar, TimeGrid } from \"@event-calendar/core\";\nimport { adjustSlotHeight } from \"../../functions/adjustSlotHeight\";\nimport { Select, Spinner } from \"design-react-kit\";\nimport {\n clearCalendarViewState,\n generateCacheKey,\n getCachedData,\n getCalendarViewState,\n saveCalendarViewState,\n setCachedData,\n} from \"./calendarUtility\";\n\nconst Field = Formio.Components.components.field;\n\nexport const ReactCalendarAdvanced = ({\n component,\n current,\n onChange,\n i18next,\n}) => {\n //Date disponibili del mese selezionato\n const [availableDate, setAvailableDate] = useState(null);\n // Dato caledario sola lettura\n const [renderData, setRenderData] = useState(null);\n\n //Lista meeting\n const [listMeeting, setListMeeting] = useState([]);\n\n const [isLoading, setIsLoading] = useState(false);\n\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n\n const [selectedBooking, setSelectedBooking] = useState(null);\n\n // Opzioni mese/anno per select\n const [monthYearOptions, setMonthYearOptions] = useState([]);\n const [daysOptions, setDaysOptions] = useState([]);\n const [slotsOptions, setSlotsOptions] = useState([]);\n\n //Opzioni selezionate\n const [selectedMonth, setSelectedMonth] = useState(null);\n const [selectedDay, setSelectedDay] = useState(null);\n const [selectedSlot, setSelectedSlot] = useState(null);\n\n const calendarRef = useRef(null);\n const calendarEc = useRef(null);\n\n const language = i18next.language;\n\n moment.locale(i18next.language);\n dayjs.locale(i18next.language);\n\n function getTimeRange(availabilities) {\n if (!availabilities || availabilities.length === 0) return null;\n\n const times = availabilities.map((item) => ({\n start: item.start_time,\n end: item.end_time,\n }));\n\n const minStart = times.reduce(\n (min, t) => (t.start < min ? t.start : min),\n times[0].start\n );\n const maxEnd = times.reduce(\n (max, t) => (t.end > max ? t.end : max),\n times[0].end\n );\n\n return {\n earliestStartTime: minStart,\n latestEndTime: maxEnd,\n };\n }\n\n function getHiddenDays(events) {\n const availableDays = events.map((item) => moment(item.date).isoWeekday());\n\n // Calcola tutti i giorni della settimana (1 = lunedì, ..., 7 = domenica)\n const allDays = [1, 2, 3, 4, 5, 6, 7];\n\n // Trova i giorni mancanti\n const missingDays = allDays.filter((day) => !availableDays.includes(day));\n\n //console.log('Giorni disponibili:', availableDays); // ad esempio: [4] (giovedì)\n //console.log('Giorni mancanti:', missingDays); // [1, 2, 3, 5, 6, 7]\n if (missingDays.length > 0) {\n calendarEc.current.setOption(\"hiddenDays\", missingDays);\n } else {\n calendarEc.current.setOption(\"hiddenDays\", []);\n }\n }\n\n function buildAvailabilityUrl(originalUrl, startDate, endDate) {\n const url = new URL(originalUrl);\n const pathnameParts = url.pathname.split(\"/\");\n\n // Inserisce le date nella posizione corretta\n const newPathname = `${pathnameParts.slice(0, 4).join(\"/\")}/${startDate}/${endDate}`;\n\n return `${url.origin}${newPathname}${url.search}`;\n }\n\n function buildAvailabilityUrlLongTerms(originalUrl, startDate, endDate) {\n const url = new URL(originalUrl);\n const pathnameParts = url.pathname.split(\"/\");\n\n // Inserisce le date nella posizione corretta\n const newPathname = `${pathnameParts.slice(0, 4).join(\"/\")}`;\n\n return `${url.origin}${newPathname}${url.search}&from_to=${startDate}&to_date=${endDate}`;\n }\n\n function calculateAvailabilityLink(startDate, endDate, calendarID) {\n const basepath = baseUrl();\n return `${basepath}/api/availabilities/${startDate}/${endDate}?calendar_ids=${calendarID}&available=true`;\n }\n\n const handleChangeMonthYear = (date) => {\n setSlotsOptions([]);\n setDaysOptions([]);\n onChange({});\n if (date) {\n setDaysOptions(\n availableDate.filter((item) => item.date.startsWith(date))\n );\n }\n };\n\n const handleChangeDay = async (e, type) => {\n const data = JSON.parse(e);\n // 🔑 Controlla il cache\n const cacheKey = generateCacheKey(\"SLOTS\", data.date, data.calendar_ids);\n if (type === \"manual\") {\n setSlotsOptions([]);\n setSelectedSlot(null);\n setSelectedBooking(null);\n onChange({});\n } else {\n const cachedSlots = getCachedData(\"SLOTS\", cacheKey);\n if (cachedSlots) {\n setSlotsOptions(cachedSlots);\n return;\n }\n }\n\n // Chiama l'API\n try {\n const availabilitySlots = await window.FormioHelper.anonymousCall(\n `availabilities/${data.date}?calendar_ids=${data.calendar_ids}`\n );\n\n // 🔑 Salva nel cache\n setCachedData(\"SLOTS\", cacheKey, availabilitySlots.data);\n setSlotsOptions(availabilitySlots.data);\n } catch (error) {\n console.error(\"Errore nel caricamento degli slot:\", error);\n Swal.fire({\n icon: \"error\",\n title: i18next.t(\"Errore\"),\n text: i18next.t(\"Errore nel caricamento degli orari\"),\n });\n }\n };\n\n const handleChangeSlot = (data) => {\n const meet = JSON.parse(data);\n\n const dataMeet = {\n status: 6,\n calendar: meet.calendar_id,\n opening_hour: meet.opening_hour_id,\n user: null,\n email: null,\n fiscal_code: null,\n name: \" \",\n phone_number: null,\n from_time: dayjs(`${meet.date}T${meet.start_time}`).toISOString(),\n to_time: dayjs(`${meet.date}T${meet.end_time}`).toISOString(),\n user_message: null,\n reason: null,\n location: null,\n motivation_outcome: null,\n calendar_group_config_id: current?.data?.service_data?.id,\n calendar_group_office_id: current?.data?.user_group?.id,\n calendar_group_place_id: current?.data?.place?.id,\n };\n\n window.FormioHelper.authenticatedRequest(\n current?.dataValue?.id ? \"PATCH\" : \"POST\",\n current?.dataValue?.id ? `meetings/${current.dataValue.id}` : \"meetings\",\n dataMeet\n )\n .then((response) => {\n setSelectedBooking({\n day: dayjs(meet.date).format(\"dddd, DD MMMM YYYY\"),\n startDate: meet.start_time,\n endDate: meet.end_time,\n });\n onChange(response?.id ? response : response? {...response, id: current.dataValue.id} : current.dataValue.id ? { ...dataMeet, id: current.dataValue.id } : { ...dataMeet });\n })\n .catch((e) => {\n console.error(e);\n if (\n e.status === 400 &&\n e?.response?.data?.type === \"validation_error\"\n ) {\n Swal.fire({\n title: \"\",\n html:\n \"<p>\" +\n i18next.t(\n \"Lo slot orario selezionato non è disponibile perché già prenotato Seleziona un altro orario o una data diversa\",\n ) +\n \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n }\n //onChange({});\n });\n };\n\n const getMonthYearOptions = (items) => {\n const set = new Set();\n const options = [];\n\n items.forEach((item) => {\n const d = dayjs(item.date);\n const key = d.format(\"YYYY-MM\");\n\n if (!set.has(key)) {\n set.add(key);\n\n options.push({\n value: key,\n label: d.format(\"MMMM YYYY\").replace(/^\\w/, (c) => c.toUpperCase()),\n });\n }\n });\n\n return options;\n };\n\n const fetchAvailabilityEventsSelect = async () => {\n const url = current?.root?.data?.place?.merge_availabilities\n ? current?.root?.data?.place?.merged_availabilities_link\n : null;\n\n const calendarRangeStart = moment().format(\"YYYY-MM-DD\");\n // Recupera disponibilità per i successivi 1 mesi\n const calendarRangeEnd = moment().add(1, \"month\").format(\"YYYY-MM-DD\");\n const calendarID = current?.root?.data?.place?.calendars[0]?.id || null;\n\n const calculatedUrl = url\n ? buildAvailabilityUrlLongTerms(url, calendarRangeStart, calendarRangeEnd)\n : calculateAvailabilityLink(\n calendarRangeStart,\n calendarRangeEnd,\n calendarID\n );\n\n // 🔑 Controlla il cache\n const cacheKey = generateCacheKey(\"AVAILABILITY\", calculatedUrl);\n const cachedData = getCachedData(\"AVAILABILITY\", cacheKey);\n\n if (cachedData) {\n setAvailableDate(cachedData);\n setMonthYearOptions(getMonthYearOptions(cachedData));\n return;\n } else {\n onChange({});\n }\n\n // Se non c'è cache, chiama l'API\n setIsLoading(true);\n try {\n const availabilityData =\n await window.FormioHelper.fetchAPIUrlLimit(calculatedUrl);\n setIsLoading(false);\n\n if (!availabilityData?.length) {\n Swal.fire({\n icon: \"warning\",\n title: i18next.t(\"warning\"),\n html: i18next.t(\"no_meetings\"),\n });\n return;\n }\n\n // 🔑 Salva nel cache\n setCachedData(\"AVAILABILITY\", cacheKey, availabilityData);\n\n setAvailableDate(availabilityData);\n setMonthYearOptions(getMonthYearOptions(availabilityData));\n } catch (error) {\n setIsLoading(false);\n console.error(\"Errore nel caricamento disponibilità:\", error);\n }\n };\n\n // Se ho selezionato il mese in precedenza lo ripopolo\n useEffect(() => {\n if (availableDate?.length) {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (\n savedValue?.from_time &&\n savedValue?.to_time &&\n !dayjs().isAfter(savedValue?.draft_expiration)\n ) {\n const monthKey = dayjs(savedValue.from_time).format(\"YYYY-MM\");\n setSelectedMonth(monthKey);\n\n // Simula la selezione del mese\n if (monthKey && setDaysOptions) {\n setDaysOptions(\n availableDate.filter((item) => item.date.startsWith(monthKey))\n );\n setSelectedDay(dayjs(savedValue.from_time).format(\"YYYY-MM-DD\"));\n }\n } else if (\n savedValue?.draft_expiration &&\n dayjs().isAfter(savedValue?.draft_expiration)\n ) {\n //Bozza scaduta riselezionare tutto l'appuntamento\n Swal.fire({\n icon: \"warning\",\n title: i18next.t(\"warning\"),\n html: i18next.t(\"expired_meeting\"),\n });\n }\n }\n }, [availableDate]);\n\n useEffect(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (!monthYearOptions.length || selectedMonth) return;\n if (savedValue?.from_time || savedValue?.to_time) return;\n\n const first = monthYearOptions[0];\n if (!first) return;\n setSelectedMonth(first.value);\n handleChangeMonthYear(first.value);\n }, [monthYearOptions, selectedMonth, current?.dataValue]);\n\n useEffect(() => {\n if (selectedDay && renderDataReadOnly === false) {\n const savedValue = current?.dataValue ?? current?.getValue();\n handleChangeDay(\n JSON.stringify({\n date: selectedDay,\n calendar_ids: savedValue.calendar.id,\n })\n );\n }\n }, [selectedDay]);\n\n const getResponsiveView = () =>\n window.innerWidth > 768 ? \"timeGridWeek\" : \"timeGridDay\";\n\n useEffect(() => {\n const handleResize = () => {\n const calendar = calendarEc.current;\n if (!calendar) return;\n\n const newView = getResponsiveView();\n const currentView = calendar.getView().type;\n\n if (newView !== currentView) {\n calendar.setOption(\"view\", newView);\n }\n };\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (slotsOptions?.length && savedValue?.from_time) {\n setSelectedSlot(\n dayjs(savedValue.from_time).format(\"HH:mm\") +\n \" - \" +\n dayjs(savedValue.to_time).format(\"HH:mm\")\n );\n setSelectedBooking({\n day: dayjs(savedValue.from_time).format(\"dddd D MMM YYYY\"),\n startDate: dayjs(savedValue.from_time).format(\"HH:mm\"),\n endDate: dayjs(savedValue.to_time).format(\"HH:mm\"),\n });\n }\n }, [slotsOptions]);\n\n const renderViewCalendar = () => {\n // 🔑 Leggi lo stato salvato della view\n const viewState = getCalendarViewState();\n // ✅ Crea il calendario\n calendarEc.current = createCalendar(calendarRef.current, [TimeGrid], {\n events: [],\n buttonText: {\n today: i18next.t(\"Oggi\"),\n },\n allDaySlot: false,\n firstDay: 1,\n date: viewState.date, // 🔑 Ripristina la data\n slotEventOverlap: false,\n view: getResponsiveView(),\n height: \"400px\", // oppure '100%' o 'auto'\n views: {\n timeGridWeek: {\n allDaySlot: false,\n firstDay: 1,\n slotHeight: 48,\n },\n timeGridDay: {\n allDaySlot: false,\n firstDay: 1,\n slotHeight: 48,\n },\n },\n datesSet: (view) => {\n // Salva la view (week/day) e la data di inizio\n saveCalendarViewState(view.view.type, view.start);\n },\n eventClick({ event, el }) {\n document.querySelectorAll(\".ec-event\").forEach((e) => {\n e.classList.remove(\"highlighted-event\");\n });\n el.classList.add(\"highlighted-event\");\n\n const start = new Date(event.start);\n const end = new Date(event.end);\n\n const day = start.toLocaleDateString(\"it-IT\", {\n weekday: \"long\",\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n });\n const startDate = start.toLocaleTimeString(\"it-IT\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n const endDate = end.toLocaleTimeString(\"it-IT\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n\n const dataMeet = {\n status: 6,\n calendar: event.extendedProps.calendar_id,\n opening_hour: event.extendedProps.opening_hour_id,\n user: null,\n email: null,\n fiscal_code: null,\n name: \" \",\n phone_number: null,\n from_time: start,\n to_time: end,\n user_message: null,\n reason: null,\n location: null,\n motivation_outcome: null,\n calendar_group_config_id: current?.data?.service_data?.id,\n calendar_group_office_id: current?.data?.user_group?.id,\n calendar_group_place_id: current?.data?.place?.id,\n };\n window.FormioHelper.authenticatedRequest(\n current?.dataValue?.id ? \"PATCH\" : \"POST\",\n current?.dataValue?.id\n ? `meetings/${current.dataValue.id}`\n : \"meetings\",\n dataMeet\n )\n .then((response) => {\n let meetingData;\n\n if (!response || response === \"\") {\n // Se è vuoto, usa il dataMeet con l'ID che avevi\n meetingData = {\n ...dataMeet,\n code: null,\n id: current?.dataValue?.id,\n };\n } else if (typeof response === \"object\") {\n // Se è un oggetto, usalo direttamente\n meetingData = response;\n }\n\n setSelectedBooking({\n day: day,\n startDate: startDate,\n endDate: endDate,\n });\n\n onChange(meetingData);\n })\n .catch((e) => {\n console.error(e);\n if (\n e.status === 400 &&\n e?.response?.data?.type === \"validation_error\"\n ) {\n Swal.fire({\n title: \"\",\n html:\n \"<p>\" +\n i18next.t(\n \"Lo slot orario selezionato non è disponibile perché già prenotato Seleziona un altro orario o una data diversa\",\n ) +\n \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n }\n \n //onChange({});\n });\n },\n viewDidMount: handleViewChange,\n eventDidMount: (info) => {\n const { event, el } = info;\n const props = event.extendedProps;\n el.setAttribute(\n \"data-event-id\",\n event.id + \"-\" + props.date + \"-\" + props.start_time\n );\n },\n loading: (isLoading) => {\n setIsLoading(isLoading);\n },\n });\n };\n\n const handleViewChange = (args) => {\n //console.log('View changed to:', args.view);\n // ✅ Se esiste un office, carica i dati\n if (current?.root?.data?.place) {\n calendarEc.current.setOption(\"eventSources\", [\n {\n events: fetchAvailabilityEvents,\n },\n ]);\n }\n };\n\n // ✅ Estraggo la logica di fetch eventi in una funzione separata\n async function fetchAvailabilityEvents(\n view,\n successCallback,\n failureCallback\n ) {\n try {\n calendarEc.current.setOption(\"events\", []);\n\n const calendarRangeStart = moment(view.start).format(\"YYYY-MM-DD\");\n const endWeek = new Date(view.end);\n endWeek.setDate(endWeek.getDate() - 1);\n const calendarRangeEnd = moment(endWeek).format(\"YYYY-MM-DD\");\n\n const calendarID = null;\n const url = current?.root?.data?.place?.merge_availabilities\n ? current?.root?.data?.place?.merged_availabilities_link\n : null;\n\n const calculatedUrl = url\n ? buildAvailabilityUrl(url, calendarRangeStart, calendarRangeEnd)\n : calculateAvailabilityLink(\n calendarRangeStart,\n calendarRangeEnd,\n calendarID\n );\n\n // 🔑 Controlla il cache\n const cacheKey = generateCacheKey(\"AVAILABILITY\", calculatedUrl);\n const cachedData = getCachedData(\"AVAILABILITY\", cacheKey);\n\n let availabilityData;\n if (cachedData) {\n availabilityData = cachedData;\n setIsLoading(false);\n } else {\n // onChange({});\n availabilityData =\n await window.FormioHelper.fetchAPIUrlLimit(calculatedUrl);\n setCachedData(\"AVAILABILITY\", cacheKey, availabilityData);\n }\n if (!availabilityData?.length) {\n successCallback([]);\n Swal.fire({\n icon: \"warning\",\n title: i18next.t(\"warning\"),\n html: i18next.t(\"no_meetings\"),\n });\n return;\n }\n // ✅ Calcola eventi\n const events = availabilityData.map((slot) => ({\n id: slot.opening_hour_id,\n allDay: false,\n start: `${slot.date}T${slot.start_time}:00`,\n end: `${slot.date}T${slot.end_time}:00`,\n title: `${slot.start_time} - ${slot.end_time}`,\n editable: false,\n display: \"auto\",\n color: \"#ebeef0\",\n textColor: \"#000\",\n className: \"event-slot\",\n extendedProps: {\n ...slot,\n },\n }));\n\n // ✅ Imposta limiti orari e giorni nascosti\n const timeRange = getTimeRange(availabilityData);\n calendarEc.current.setOption(\"slotMinTime\", timeRange.earliestStartTime);\n calendarEc.current.setOption(\"slotMaxTime\", timeRange.latestEndTime);\n getHiddenDays(availabilityData);\n adjustSlotHeight(calendarEc.current, events);\n successCallback(events);\n // Dopo che gli eventi sono stati renderizzati, evidenzio l'evento salvato\n setTimeout(() => {\n highlightSavedSlot(events);\n }, 500);\n } catch (err) {\n console.error(\"Errore nel caricamento disponibilità:\", err);\n failureCallback?.(err);\n }\n }\n\n useEffect(() => {\n let timerId;\n let destroyed = false;\n\n async function initCalendar() {\n try {\n await window.FormioInstance?.formReady;\n\n if (destroyed) return;\n\n if (!calendarRef.current) {\n console.warn(\"Elemento calendario non trovato\");\n return;\n }\n\n // 🔑 Controlla se esiste una bozza di un appuntamento e se scaduta resetto\n const savedValue = current?.dataValue ?? current?.getValue();\n if (savedValue && savedValue?.draft_expiration) {\n const isExpired = dayjs().isAfter(savedValue.draft_expiration);\n if (isExpired) {\n onChange({});\n clearCalendarViewState();\n }\n }\n\n if (current?.data?.service_data?.view_type === \"calendar\") {\n if (!calendarEc?.current) {\n renderViewCalendar();\n }\n } else if (current?.data?.service_data?.view_type === \"select\") {\n fetchAvailabilityEventsSelect();\n } else {\n alert(\n i18next.t(\n \"Il componente non è configurato per la visualizzazione a calendario\"\n )\n );\n }\n } catch (err) {\n console.error(\"Errore durante l'inizializzazione del calendario:\", err);\n }\n }\n\n // ✅ Usa un leggero delay solo se serve, ma controllato\n timerId = setTimeout(initCalendar, 500);\n\n // ✅ Cleanup completo\n return () => {\n destroyed = true;\n if (timerId) clearTimeout(timerId);\n if (calendarEc.current) {\n calendarRef.current?.destroy?.();\n calendarEc.current = null;\n }\n };\n }, [current?.root?.data?.place]);\n\n function highlightSavedSlot(events) {\n const saved = current?.dataValue;\n\n if (!saved?.from_time) return;\n\n const savedStart = dayjs(saved.from_time).format(\"DD-MM-YYYY HH:mm\");\n const savedEnd = dayjs(saved.to_time).format(\"DD-MM-YYYY HH:mm\");\n\n const eventToHighlight = events.find(\n (ev) =>\n dayjs(ev.start).format(\"DD-MM-YYYY HH:mm\") === savedStart &&\n dayjs(ev.end).format(\"DD-MM-YYYY HH:mm\") === savedEnd\n );\n\n if (!eventToHighlight) return;\n const el = document.querySelector(\n `.ec-event[data-event-id=\"${eventToHighlight.id}-${dayjs(saved?.from_time).format(\"YYYY-MM-DD\")}-${dayjs(saved?.from_time).format(\"HH:mm\")}\"]`\n );\n\n if (el) {\n el.classList.add(\"highlighted-event\");\n el.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n setSelectedBooking({\n day: dayjs(saved?.from_time).format(\"dddd, DD MMMM YYYY\"),\n startDate: dayjs(saved?.from_time).format(\"HH:mm\"),\n endDate: dayjs(saved?.to_time).format(\"HH:mm\"),\n });\n }\n }\n\n const renderSummary = ({ day, startDate, endDate }) => {\n return (\n <div className=\"mt-3\">\n <div className=\"row align-items-center gy-3\">\n <div className=\"col-12 col-md border-light mx-md-3\">\n <div className=\"text-paragraph-small\">{i18next.t(\"Data\")}</div>\n <p className=\"data-text\">\n <strong>{day}</strong>\n </p>\n </div>\n\n <div className=\"col-12 col-md border-light mx-md-3\">\n <div className=\"text-paragraph-small\">{i18next.t(\"Ora\")}</div>\n <p className=\"data-text\">\n <strong>\n {startDate} - {endDate}\n </strong>\n </p>\n </div>\n </div>\n </div>\n );\n };\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n } else {\n if (current?.data?.service_data?.view_type === \"select\") {\n fetchAvailabilityEventsSelect();\n } else if (current?.data?.service_data?.view_type === \"calendar\") {\n renderViewCalendar();\n }\n setRenderDataReadOnly(false);\n }\n }, []);\n\n useEffect(() => {\n if (renderDataReadOnly) {\n setTimeout(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n console.log(\"savedValue\", savedValue, renderDataReadOnly);\n if (savedValue) {\n setRenderData(savedValue);\n }\n }, 500);\n }\n }, [renderDataReadOnly]);\n\n const removeItem = (index, meeting) => {\n let url = `${baseUrl()}/api/meetings/${meeting.meeting_id}`;\n\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n }).then((response) => {\n if (response && response.status > 400) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante la cancellazione dello slot\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n const newArray = [\n ...listMeeting.slice(0, index),\n ...listMeeting.slice(index + 1),\n ];\n setListMeeting(newArray);\n calculateAvailableDates(new Date());\n }\n });\n };\n\n return (\n <>\n {renderDataReadOnly && renderData ? (\n <div className=\"mx-2\">\n <p className=\"text-paragraph\">\n {i18next.t(\"Giorno selezionato per la prenotazione\")}:\n </p>\n <div className=\"\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n <SlotSelected\n day={dayjs(renderData.from_time).format(\"dddd D MMM YYYY\")}\n i18next={i18next}\n slot={`${dayjs(renderData.from_time).format(\"HH:mm\")} - ${dayjs(renderData.to_time).format(\"HH:mm\")}`}\n ></SlotSelected>\n </ul>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"\">\n <div ref={calendarRef}></div>\n {monthYearOptions.length > 0 ? (\n <>\n <Select\n label=\"Mese\"\n id=\"selectMonthYear\"\n onChange={handleChangeMonthYear}\n >\n <option value=\"\">{i18next.t(\"Scegli un'opzione\")}</option>\n {monthYearOptions.map((option) => (\n <option\n key={option.value}\n value={option.value}\n selected={option.value === selectedMonth}\n >\n {option.label}\n </option>\n ))}\n </Select>\n\n <Select\n label=\"Giorno\"\n id=\"selectDay\"\n onChange={(e) => handleChangeDay(e, \"manual\")}\n disabled={daysOptions.length === 0}\n >\n <option value=\"\">{i18next.t(\"Scegli un'opzione\")}</option>\n {daysOptions.map((option) => (\n <option\n key={option.date}\n value={JSON.stringify(option)}\n selected={option.date === selectedDay}\n >\n {dayjs(option.date).format(\"dddd,DD MMMM YYYY\")}\n </option>\n ))}\n </Select>\n <Select\n label=\"Orario\"\n id=\"selectSlot\"\n onChange={handleChangeSlot}\n disabled={slotsOptions.length === 0}\n >\n <option value=\"\">{i18next.t(\"Scegli un'opzione\")}</option>\n {slotsOptions.map((option) => (\n <option\n key={option.start_time + \" - \" + option.end_time}\n value={JSON.stringify(option)}\n selected={\n option.start_time + \" - \" + option.end_time ===\n selectedSlot\n }\n >\n {option.start_time + \" - \" + option.end_time}\n </option>\n ))}\n </Select>\n </>\n ) : null}\n {selectedBooking\n ? renderSummary({\n day: selectedBooking.day,\n startDate: selectedBooking.startDate,\n endDate: selectedBooking.endDate,\n })\n : null}\n {isLoading ? (\n <div className=\"d-flex align-items-center justify-content-center position-absolute-center\">\n <Spinner active></Spinner>\n </div>\n ) : null}\n </div>\n )}\n </>\n );\n};\n\nexport default class FormioCalendarAdvanced extends Field {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Calendar Advanced\",\n group: \"basic\",\n icon: \"bi bi-calendar-plus\",\n documentation: \"\",\n weight: 70,\n schema: FormioCalendarAdvanced.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return Field.schema({\n type: \"calendar-advanced\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attach(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactCalendarAdvanced\n ref={ref}\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />\n );\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n this.updateValue(value);\n this.shouldSetValue = true;\n }\n\n getValue() {\n return this.dataValue;\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n}\n","export default [\n {\n key: \"defaultValue\",\n ignore: true,\n },\n];\n","export default [\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n type: \"checkbox\",\n label: \"Files Synchronization feature\",\n tooltip:\n \"Enable ability to control files synchronization. Files will be auto synced before submit.\",\n key: \"autoSync\",\n input: true,\n conditional: {\n json: {\n in: [\n {\n var: \"data.storage\",\n },\n [\"s3\", \"azure\", \"googledrive\"],\n ],\n },\n },\n },\n];\n","export default [\n {\n type: \"select\",\n input: true,\n key: \"storage\",\n label: \"Storage\",\n placeholder: \"Select your file storage provider\",\n weight: 0,\n tooltip: \"Which storage to save the files in.\",\n valueProperty: \"value\",\n dataSrc: \"custom\",\n hidden: true,\n data: {\n custom: function custom() {\n return [\n {\n label: \"url\",\n value: \"url\",\n },\n ];\n },\n },\n },\n {\n type: \"checkbox\",\n input: true,\n defaultValue: true,\n key: \"protocol_required\",\n label: \"Richiede protocollazione?\",\n tooltip: \"\",\n weight: 10,\n },\n {\n type: \"checkbox\",\n input: true,\n defaultValue: false,\n key: \"check_signature\",\n label: \"Effettuare il controllo della firma?\",\n tooltip: \"\",\n weight: 15,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"useMultipartUpload\",\n label: \"Use the S3 Multipart Upload API\",\n tooltip:\n \"The <a href='https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html'>S3 Multipart Upload API</a> is designed to improve the upload experience for larger objects (> 5GB).\",\n conditional: {\n json: { \"===\": [{ var: \"data.storage\" }, \"s3\"] },\n },\n },\n {\n label: \"Multipart Upload\",\n tableView: false,\n key: \"multipart\",\n type: \"container\",\n input: true,\n components: [\n {\n label: \"Part Size (MB)\",\n applyMaskOn: \"change\",\n mask: false,\n tableView: false,\n delimiter: false,\n requireDecimal: false,\n inputFormat: \"plain\",\n truncateMultipleSpaces: false,\n validate: {\n min: 5,\n max: 5000,\n },\n key: \"partSize\",\n type: \"number\",\n input: true,\n defaultValue: 500,\n },\n ],\n conditional: {\n json: { \"===\": [{ var: \"data.useMultipartUpload\" }, true] },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"options.indexeddb\",\n label: \"Database\",\n weight: 10,\n placeholder: \"Enter the indexeddb database name\",\n conditional: {\n json: {\n in: [\n {\n var: \"data.storage\",\n },\n [\"indexeddb\"],\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n label: \"Table\",\n key: \"options.indexeddbTable\",\n weight: 10,\n placeholder: \"Enter the name for indexeddb table\",\n conditional: {\n json: {\n in: [\n {\n var: \"data.storage\",\n },\n [\"indexeddb\"],\n ],\n },\n },\n },\n {\n type: \"textarea\",\n key: \"options\",\n label: \"Custom request options\",\n tooltip: \"Pass your custom xhr options(optional)\",\n rows: 5,\n editor: \"ace\",\n input: true,\n weight: 15,\n placeholder: `{\n \"withCredentials\": true,\n \"headers\": {\n \"Authorization\": \"Basic <key>\"\n }\n }`,\n conditional: {\n json: {\n \"===\": [\n {\n var: \"data.storage\",\n },\n \"url\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileKey\",\n label: \"File form-data key\",\n weight: 17,\n placeholder: \"Enter the key name of a file for form data.\",\n tooltip:\n \"Key name that you would like to modify for the file while calling API request.\",\n conditional: {\n json: {\n \"===\": [\n {\n var: \"data.storage\",\n },\n \"url\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"dir\",\n label: \"Directory\",\n placeholder: \"(optional) Enter a directory for the files\",\n tooltip:\n \"This will place all the files uploaded in this field in the directory\",\n weight: 20,\n conditional: {\n json: {\n \"!==\": [\n {\n var: \"data.storage\",\n },\n \"googledrive\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"dir\",\n label: \"Folder ID\",\n placeholder: \"(optional) Enter an ID of the folder for the files\",\n tooltip:\n \"This will place all the files uploaded in this field in the folder\",\n weight: 20,\n conditional: {\n json: {\n \"===\": [\n {\n var: \"data.storage\",\n },\n \"googledrive\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileNameTemplate\",\n label: \"File Name Template\",\n placeholder: '(optional) { {name} }-{ {guid} }\"',\n tooltip:\n \"Specify template for name of uploaded file(s). Regular template variables are available (`data`, `component`, `user`, `value`, `moment` etc.), also `fileName`, `guid` variables are available. `guid` part must be present, if not found in template, will be added at the end.\",\n weight: 25,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"image\",\n label: \"Display as image(s)\",\n tooltip:\n \"Instead of a list of linked files, images will be rendered in the view.\",\n weight: 30,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"uploadOnly\",\n label: \"Upload Only\",\n tooltip:\n \"When this is checked, will only allow you to upload file(s) and consequently the download, in this component, will be unavailable.\",\n weight: 33,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"privateDownload\",\n label: \"Private Download\",\n tooltip:\n \"When this is checked, the file download will send a POST request to the download URL with the x-jwt-token header. This will allow your endpoint to create a Private download system.\",\n weight: 31,\n conditional: {\n json: { \"===\": [{ var: \"data.storage\" }, \"url\"] },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"imageSize\",\n label: \"Image Size\",\n placeholder: \"100\",\n tooltip: \"The image size for previewing images.\",\n weight: 40,\n conditional: {\n json: { \"==\": [{ var: \"data.image\" }, true] },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"maxFiles\",\n label: \"Numero massimo di file\",\n placeholder: \"100\",\n tooltip: \"Numero massimo di file caricabilii, default è 100.\",\n weight: 40,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"webcam\",\n label: \"Enable web camera\",\n tooltip:\n \"This will allow using an attached camera to directly take a picture instead of uploading an existing file.\",\n weight: 32,\n },\n {\n type: \"textfield\",\n input: true,\n key: \"webcamSize\",\n label: \"Webcam Width\",\n placeholder: \"320\",\n tooltip: \"The webcam size for taking pictures.\",\n weight: 38,\n conditional: {\n json: { \"==\": [{ var: \"data.webcam\" }, true] },\n },\n },\n {\n type: \"datagrid\",\n input: true,\n label: \"File Types\",\n key: \"fileTypes\",\n tooltip:\n \"Specify file types to classify the uploads. This is useful if you allow multiple types of uploads but want to allow the user to specify which type of file each is.\",\n weight: 11,\n components: [\n {\n label: \"Label\",\n key: \"label\",\n input: true,\n type: \"textfield\",\n },\n {\n label: \"Value\",\n key: \"value\",\n input: true,\n type: \"textfield\",\n },\n ],\n },\n {\n type: \"textfield\",\n input: true,\n key: \"filePattern\",\n label: \"File Pattern\",\n placeholder: \".jpg,video/*,application/pdf\",\n tooltip:\n \"See <a href='https://github.com/danialfarid/ng-file-upload#full-reference' target='_blank'>https://github.com/danialfarid/ng-file-upload#full-reference</a> for how to specify file patterns.\",\n weight: 50,\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileMinSize\",\n label: \"File Minimum Size\",\n placeholder: \"1MB\",\n tooltip:\n \"See <a href='https://github.com/danialfarid/ng-file-upload#full-reference' target='_blank'>https://github.com/danialfarid/ng-file-upload#full-reference</a> for how to specify file sizes.\",\n weight: 60,\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileMaxSize\",\n label: \"File Maximum Size\",\n placeholder: \"10MB\",\n tooltip:\n \"See <a href='https://github.com/danialfarid/ng-file-upload#full-reference' target='_blank'>https://github.com/danialfarid/ng-file-upload#full-reference</a> for how to specify file sizes.\",\n weight: 70,\n },\n {\n type: 'textfield',\n input: true,\n key: 'maxFiles',\n label: 'Numero massimo di file',\n placeholder: '100',\n tooltip: 'Numero massimo di file caricabilii, default è 100.',\n weight: 40\n }\n];\n","export default [\n {\n key: \"unique\",\n ignore: true,\n },\n {\n key: \"validateOn\",\n ignore: true,\n },\n];\n","import { Components } from \"@formio/react\";\nimport FileEditData from \"./SdcFile.edit.data\";\nimport FileEditDisplay from \"./SdcFile.edit.display\";\nimport FileEditFile from \"./SdcFile.edit.file\";\nimport FileEditValidation from \"./SdcFile.edit.validation\";\n\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: FileEditDisplay,\n },\n {\n key: \"data\",\n components: FileEditData,\n },\n {\n label: \"File\",\n key: \"file\",\n weight: 5,\n components: FileEditFile,\n },\n {\n key: \"validation\",\n components: FileEditValidation,\n },\n ],\n ...extend,\n );\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","import { jwtDecode } from \"jwt-decode\";\nimport BasePath from \"../_helpers/BasePath\";\nimport Swal from \"sweetalert2\";\nimport axios from \"axios\";\nimport { sessionGet, sessionSet } from \"../_helpers/utilities\";\nimport { baseUrl } from \"../_helpers/BaseUrl\";\nconst language = document.documentElement.lang.toString();\n\nclass Auth {\n constructor() {\n this.token = null;\n this.basePath = null;\n this.init();\n }\n\n init() {\n this.token = null;\n this.basePath = baseUrl();\n }\n\n async getSessionAuthToken() {\n let self = this;\n await axios\n .get(self.basePath + \"/api/session-auth\")\n .then((res) => {\n //TODO\n ;\n self.token = res.data.token;\n })\n .catch((err) => {\n Swal.fire(`'error_message_detail`, `'auth_error'`, \"error\");\n });\n }\n\n getSessionAuthTokenPromise() {\n let self = this;\n return new Promise(async (resolve, reject) => {\n if (sessionGet(\"auth-token\")) {\n resolve({ token: sessionGet(\"auth-token\") });\n } else {\n await axios\n .get(self.basePath + \"/api/session-auth?with-cookie=true\", {\n withCredentials: true,\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n },\n })\n .then((res) => {\n const decodedToken = jwtDecode(res.data.token);\n if (decodedToken.exp) {\n sessionSet(\"auth-token\", res.data.token, decodedToken.exp);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n });\n }\n\n getToken() {\n return this.token;\n }\n\n execAuthenticatedCall(callback) {\n if (this.token) {\n callback(this.token);\n } else {\n this.getSessionAuthTokenPromise().then((res) => {\n this.token = res.token;\n callback(this.token);\n });\n }\n }\n}\n\nexport default Auth;\n","import editForm from \"./SdcFile.form\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { Button, Icon, Progress } from \"design-react-kit\";\nimport { useEffect, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport axios from \"axios\";\nimport Swal from \"sweetalert2\";\nimport mime from \"mime\";\nimport DOMPurify from \"dompurify\";\nimport get from \"lodash/get\";\nimport set from \"lodash/set\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport Auth from \"../../class/Auth\";\nconst FileComponent = Formio.Components.components.file;\n\nlet signatureCheckWsUrl = null;\nif (document.querySelector(\"widget-formio\") !== null) {\n signatureCheckWsUrl = document\n .querySelector(\"widget-formio\")\n .getAttribute(\"signature-check-ws-url\");\n}\n\nexport const ReactSdcFile = ({ component, current, onChange, i18next }) => {\n const [uploadedFiles, setUploadedFiles] = useState([]);\n const [filesUploadingMap, setFilesUploadingMap] = useState(new Map());\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n const auth = new Auth();\n\n useEffect(() => {\n auth.getSessionAuthTokenPromise();\n }, []);\n\n const addFilesUploading = (id, file) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.set(id, { ...file, progress: Number(file?.progress) || 0 });\n return updatedMap;\n });\n };\n\n function maxSizeValidator(file) {\n if (\n file.size >\n (translateScalars(component.fileMaxSize) || translateScalars(\"1GB\"))\n ) {\n return {\n code: \"size-files\",\n message: `${i18next.t(\"I file non possono superare le dimensioni di\")} ${component.fileMaxSize ? component.fileMaxSize : \"1GB\"}`,\n };\n }\n if (\n uploadedFiles.length >=\n (component.maxFiles\n ? parseInt(component.maxFiles)\n : component.multiple\n ? 100\n : 1)\n ) {\n return {\n code: \"too-many-files\",\n message: `${i18next.t(\"Puoi caricare massimo \")} ${component.maxFiles || 100} ${i18next.t(\"file\")}`,\n };\n }\n if (file.size < translateScalars(component.fileMinSize)) {\n return {\n code: \"file-too-small\",\n message: `${i18next.t(\"I file devono avare una dimensione superiore a \")} ${component.fileMinSize}`,\n };\n }\n return null;\n }\n\n function validateTypeFile() {\n if (component.filePattern) {\n const filePattern = component.filePattern\n .split(\",\")\n .map((file) => file.trim())\n .filter(Boolean);\n\n const accepted = filePattern.reduce((acc, file) => {\n const extension = file.startsWith(\".\") ? file : `.${file}`;\n const type = mime.getType(extension);\n\n if (!type) {\n return acc;\n }\n\n if (!acc[type]) {\n acc[type] = [];\n }\n acc[type].push(extension);\n return acc;\n }, {});\n\n return Object.keys(accepted).length ? accepted : undefined;\n } else {\n return true;\n }\n }\n\n const parsedFileInfo = (fileUpload) => {\n let fileInfo = {};\n\n fileInfo.originalName = fileUpload.originalName\n ? fileUpload.originalName\n : fileUpload.name;\n fileInfo.name = fileUpload.name;\n fileInfo.url = fileUpload.url;\n fileInfo.data = fileUpload.data;\n fileInfo.signature_validation = fileUpload.signature_validation;\n fileInfo.mime_type = fileUpload.mime_type;\n fileInfo.storage = \"url\";\n fileInfo.size = fileUpload.size;\n\n return fileInfo;\n };\n\n const { getRootProps, getInputProps, fileRejections, isDragActive, open } =\n useDropzone({\n onDrop: (acceptedFiles) => {\n acceptedFiles.map((file) => {\n uploadFile(file).then((res) => {\n // setUploadedFiles([...uploadedFiles, ...acceptedFiles]);\n });\n });\n },\n maxFiles: component.maxFiles\n ? parseInt(component.maxFiles) - uploadedFiles.length\n : component.multiple\n ? 100\n : 1,\n validator: maxSizeValidator,\n accept: validateTypeFile(),\n });\n\n const removeFile = (file) => {\n const url = baseUrl() + \"/api/attachments/\" + file.data.id;\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n })\n .then(() => {\n setUploadedFiles((prevUploadedFiles) => {\n let files = prevUploadedFiles.filter(\n (item) => item.data.id !== file.data.id,\n );\n onChange(files);\n return files;\n });\n })\n .catch((error) => {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante l'eliminazione del file\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n console.error(error);\n });\n };\n\n const loadFiles = () => {\n const data =\n typeof current?.getCurrentValue === \"function\"\n ? current.getCurrentValue()\n : current?.dataValue;\n if (data?.length > 0) {\n setUploadedFiles(data);\n setTimeout(() => {\n onChange(data);\n }, 100);\n }\n };\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n setTimeout(() => {\n loadFiles();\n }, 1000);\n } else {\n setRenderDataReadOnly(false);\n setTimeout(() => {\n loadFiles();\n }, 1000);\n }\n }, []);\n\n async function uploadFile(fileUpload) {\n let idUpload;\n const url = baseUrl() + \"/it/upload\";\n\n let file = {\n mime_type: fileUpload.type,\n name: fileUpload.name,\n original_filename: fileUpload.name,\n protocol_required: component.protocol_required,\n size: fileUpload.size,\n };\n\n return await axios\n .post(url, file, {\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n })\n .then(async (respPost) => {\n idUpload = respPost.data.id;\n fileUpload.url = baseUrl() + \"/it/allegati/\" + idUpload;\n fileUpload.storage = \"url\";\n fileUpload.mime_type = fileUpload.type;\n fileUpload.protocol_required = component.protocol_required;\n fileUpload.data = {\n ...respPost.data,\n baseUrl: baseUrl() + \"/it/allegati/\" + idUpload,\n };\n addFilesUploading(idUpload, fileUpload);\n return await axios\n .put(respPost.data.uri, fileUpload, {\n onUploadProgress: (progressEvent) => {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n );\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n const file = fileUpload;\n file.progress = parseInt(percentCompleted);\n if (updatedMap.has(idUpload)) {\n updatedMap.set(idUpload, file);\n }\n return updatedMap;\n });\n },\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n })\n .then(async (response) => {\n const regex = /\\\\|\"/gi;\n const etag = response.headers.etag.replace(regex, \"\") || null;\n // let fileIndex = component.dataValue.push(fileUpload) - 1;\n return await axios\n .put(baseUrl() + \"/it/upload/\" + idUpload, {\n file_hash: etag,\n check_signature: component.check_signature,\n })\n .then(async (resp) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n let currentValue = current.dataValue || [];\n let fileIndex = null;\n setUploadedFiles((files) => {\n const nextFiles = [...files, parsedFileInfo(fileUpload)];\n fileIndex = nextFiles.length - 1;\n onChange(nextFiles);\n return nextFiles;\n });\n if (\n component.check_signature &&\n resp.data.url &&\n signatureCheckWsUrl\n ) {\n return await axios\n .post(\n signatureCheckWsUrl,\n {\n url: resp.data.url,\n content: null,\n },\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n )\n .then((resp) => {\n fileUpload.signature_validation = resp.data.sign;\n currentValue[fileIndex].signature_validation =\n resp.data.sign;\n })\n .catch((e) => {\n currentValue[fileIndex].signature_validation =\n \"File validation error: \" + e;\n });\n }\n\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n })\n .catch((err) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n console.log(err);\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori dutante il caricamento dei file, riprova più tardi!\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n })\n .catch((err) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n console.log(err);\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori dutante il caricamento dei file, riprova più tardi!\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n })\n .catch((responseErr) => {\n console.log(responseErr);\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori dutante il caricamento dei file, riprova più tardi!\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n });\n }\n\n // trasforma stringa in bytes\n function translateScalars(str) {\n if (typeof str === \"string\") {\n if (str.search(/kb/i) === str.length - 2) {\n return parseFloat(str.substring(0, str.length - 2) * 1024);\n }\n if (str.search(/mb/i) === str.length - 2) {\n return parseFloat(str.substring(0, str.length - 2) * 1024 * 1024);\n }\n if (str.search(/gb/i) === str.length - 2) {\n return parseFloat(\n str.substring(0, str.length - 2) * 1024 * 1024 * 1024,\n );\n }\n if (str.search(/b/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1));\n }\n if (str.search(/s/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1));\n }\n if (str.search(/m/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1) * 60);\n }\n if (str.search(/h/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1) * 3600);\n }\n }\n return str;\n }\n\n function formatBytes(bytes, decimals = 2) {\n if (!+bytes) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n if (current.conditionallyHidden() || current.visible === false) {\n return null;\n }\n\n return (\n <>\n {renderDataReadOnly ? (\n <div>\n <ul className=\"upload-file-list\">\n {uploadedFiles.map((file, index) => (\n <li\n key={file.size + index}\n className=\"upload-file success mw-100\"\n >\n <Icon\n aria-hidden=\"true\"\n color=\"primary\"\n icon=\"it-file\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>\n <span className=\"visually-hidden\">\n {i18next.t(\"File caricato:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n </li>\n ))}\n {Boolean(uploadedFiles.length < 1) && (\n <li className=\"upload-file text-secondary mw-100\">\n <Icon\n aria-hidden=\"true\"\n color=\"light\"\n icon=\"it-files\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>{i18next.t(\"Nessun elemento\")}</p>\n </li>\n )}\n </ul>\n </div>\n ) : (\n <>\n {component.hideLabel || component.hidden ? (\n \"\"\n ) : (\n <label\n className=\"col-form-label floating-label\"\n htmlFor={`${component.id}-${component.key}`}\n title={component.tooltip || undefined}\n >\n {component.label}\n {component.validate.required && (\n <span className=\"text-danger\"></span>\n )}\n {component.tooltip && (\n <i\n tabIndex={0}\n className=\"bi bi-question-circle text-muted ms-1\"\n data-tooltip={component.tooltip}\n aria-expanded=\"false\"\n ></i>\n )}\n </label>\n )}\n <div\n className={`my-1 border-2 border-light file-uploader-box rounded p-3 text-secondary${isDragActive ? \" dragover\" : \"\"}`}\n style={{ border: \"dashed\" }}\n {...getRootProps({\n onClick: (event) => event.stopPropagation(),\n })}\n >\n <input\n id={`${component.id}-${component.key}`}\n aria-describedby={`file-uploader-description-${component.id}-${component.key}`}\n {...getInputProps()}\n />\n <div\n className={`upload-dragdrop${isDragActive ? \" dragover\" : \"\"}`}\n >\n <div className=\"ms-1 me-3\">\n <Icon\n color=\"secondary\"\n icon=\"it-upload\"\n title={i18next.t(\"Carica file\")}\n size={\"_sm\"}\n />\n </div>\n <div className=\"upload-dragdrop-text\">\n <div\n className=\"h5\"\n id={`file-uploader-description-${component.id}-${component.key}`}\n >\n {i18next.t(\"Trascina il file per caricarlo\")}\n </div>\n <p className=\"d-inline-flex\">\n {i18next.t(\"oppure\")}\n <Button\n tag=\"input\"\n type=\"button\"\n value={i18next.t(\"selezionalo dal dispositivo\")}\n onClick={open}\n className=\"px-1 py-0 text-decoration-underline primary-color\"\n size=\"xs\"\n />\n </p>\n </div>\n </div>\n </div>\n <div\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(component.description || \"\"),\n }}\n />\n <ul className=\"upload-file-list my-0\">\n {uploadedFiles.map((file, index) => (\n <li key={file.size + index} className=\"upload-file success\">\n <Icon\n aria-hidden=\"true\"\n color=\"primary\"\n icon=\"it-file\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>\n <span className=\"visually-hidden\">\n {i18next.t(\"File caricato:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n <Button className=\"px-1\" onClick={() => removeFile(file)}>\n <Icon\n title={`${i18next.t(\"Elimina file caricato\")} ${file.name}`}\n color=\"secondary\"\n icon=\"it-delete\"\n className=\"ms-auto pointer\"\n size=\"sm\"\n />\n </Button>\n </li>\n ))}\n {Array.from(filesUploadingMap.entries()).map(([id, file]) => (\n <li key={id} className=\"upload-file success\">\n <Icon\n aria-hidden=\"true\"\n color=\"primary\"\n icon=\"it-file\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>\n <span className=\"visually-hidden\">\n {i18next.t(\"Caricamento file:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n <Progress value={Number(file?.progress) || 0} />\n </li>\n ))}\n </ul>\n {Boolean(fileRejections && fileRejections.length) && (\n <div className=\"formio-error-wrapper\">\n <ul className=\"formio-errors upload-file-list my-0 \">\n {fileRejections.map(({ file, errors }, index) => (\n <li key={file.size + index} className=\"upload-file error\">\n <div className=\"upload-file-name-error-wrapper\">\n <Icon\n aria-hidden=\"true\"\n color=\"error\"\n icon=\"it-error\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p className=\"text-wrap error\">\n <span className=\"visually-hidden\">\n {i18next.t(\"Errore caricamento file:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n {/* <Button aria-hidden=\"true\" disabled className=\"px-0\">\n <Icon\n aria-hidden=\"true\"\n color=\"error\"\n icon=\"it-close\"\n className=\"px-0\"\n />\n </Button> */}\n </div>\n <div>\n {errors.map((e) => {\n if (e.code === \"file-invalid-type\") {\n return (\n <p className=\"text-wrap ms-0\">\n {i18next.t(\"I file possono essere di tipo \")}\n {component.filePattern}\n </p>\n );\n } else if (e.code === \"too-many-files\") {\n return (\n <p className=\"text-wrap ms-0\">\n {i18next.t(\"Puoi caricare massimo \")}{\" \"}\n {component.maxFiles\n ? component.maxFiles\n : component.multiple\n ? 100\n : 1}{\" \"}\n {i18next.t(\"file\")}\n </p>\n );\n } else {\n return <p className=\"text-wrap ms-0\">{e.message}</p>;\n }\n })}\n </div>\n </li>\n ))}\n </ul>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default class FormioSdcFile extends FileComponent {\n constructor(component, options, data) {\n super(\n {\n ...component,\n clearOnHide: false,\n },\n options,\n data,\n );\n\n this.reactRef = null;\n this.lastRenderedVisible = undefined;\n this.rootComponent = null;\n this.mountNode = null;\n }\n\n static get builderInfo() {\n return {\n title: \"File Sdc\",\n group: \"basic\",\n icon: \"bi bi-file-earmark-text\",\n documentation: \"\",\n weight: 70,\n schema: FormioSdcFile.schema(),\n };\n }\n\n get emptyValue() {\n return [];\n }\n\n init() {\n super.init();\n if (this.component?.multiple && !Array.isArray(this.getCurrentValue())) {\n this.dataValue = [];\n const path = this.path || this.component?.key;\n if (path && this.rootValue) {\n set(this.rootValue, path, []);\n }\n }\n }\n\n static schema() {\n return FileComponent.schema({\n type: \"sdcfile\",\n modelType: \"array\",\n });\n }\n\n static editForm = editForm;\n\n getI18next() {\n if (this.i18next && typeof this.i18next.t === \"function\") {\n return this.i18next;\n }\n\n return {\n language:\n this.options?.language ||\n document?.documentElement?.lang ||\n \"it\",\n t: (key, options) => this.t(key, options),\n };\n }\n\n hideFileProcessingLoader() {\n if (this.refs?.fileProcessingLoader) {\n this.refs.fileProcessingLoader.style.display = \"none\";\n }\n }\n\n renderReact() {\n if (!this.rootComponent) return;\n\n if (this.builderMode) {\n this.rootComponent.render(\n <div className=\"my-1 border border-2 border-light file-uploader-box rounded p-3 text-secondary\">\n <div className=\"upload-dragdrop\">\n <div className=\"upload-dragdrop-text\">\n <div className=\"h6 mb-0\">\n {this.component?.label || \"File Sdc\"}\n </div>\n </div>\n </div>\n </div>,\n );\n return;\n }\n\n this.rootComponent.render(\n <ReactSdcFile\n component={this.component}\n current={this}\n i18next={this.getI18next()}\n onChange={(value) => this.updateValueFromReact(value)}\n />,\n );\n }\n\n attach(element) {\n const result = super.attach(element);\n this.hideFileProcessingLoader();\n\n const reactRefName = `react-${this.id}`;\n this.loadRefs(element, { [reactRefName]: \"single\" });\n const mountNode = this.refs[reactRefName];\n\n if (!mountNode) {\n return result;\n }\n\n if (this.rootComponent && this.mountNode !== mountNode) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n\n if (!this.rootComponent) {\n this.rootComponent = createRoot(mountNode);\n }\n this.mountNode = mountNode;\n this.lastRenderedVisible = this.visible;\n this.renderReact();\n\n return result;\n }\n\n updateValueFromReact(value, flags = { modified: true }) {\n const normalized = this.normalizeValue(value, flags);\n const changed = this.updateValue(normalized, flags);\n\n const path = this.path || this.component?.key;\n if (path && this.rootValue) {\n const rootPathValue = get(this.rootValue, path);\n if (!this.isEqual(rootPathValue, normalized)) {\n set(this.rootValue, path, normalized);\n }\n }\n\n return changed;\n }\n\n setValue(value, flags = {}) {\n const normalized = this.normalizeValue(value, flags);\n const changed = super.setValue(normalized, flags);\n\n const path = this.path || this.component?.key;\n if (path && this.rootValue) {\n const rootPathValue = get(this.rootValue, path);\n if (!this.isEqual(rootPathValue, normalized)) {\n set(this.rootValue, path, normalized);\n }\n }\n\n return changed;\n }\n\n normalizeValue(value, flags = {}) {\n const normalized = super.normalizeValue(value, flags);\n\n if (!this.component?.multiple) {\n return normalized;\n }\n\n if (Array.isArray(normalized)) {\n return normalized;\n }\n\n if (normalized === null || normalized === undefined || normalized === \"\") {\n return [];\n }\n\n return [normalized];\n }\n\n detach() {\n this.hideFileProcessingLoader();\n if (this.rootComponent) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n this.mountNode = null;\n return super.detach();\n }\n\n getValue() {\n return this.getCurrentValue();\n }\n\n get validationValue() {\n return this.getCurrentValue();\n }\n\n getCurrentValue() {\n const localValue = super.getValue();\n const path = this.path || this.component?.key;\n const rootPathValue =\n path && this.rootValue ? get(this.rootValue, path) : undefined;\n\n if (this.component?.multiple) {\n if (Array.isArray(localValue) && localValue.length > 0) {\n return localValue;\n }\n if (Array.isArray(rootPathValue)) {\n return rootPathValue;\n }\n return [];\n }\n\n return localValue ?? rootPathValue ?? null;\n }\n\n isEmpty(value = this.validationValue) {\n if (this.component?.multiple) {\n return !Array.isArray(value) || value.length === 0;\n }\n return value === null || value === undefined || value === \"\";\n }\n\n checkCondition(row, data) {\n const result = super.checkCondition(row, data);\n const nextVisible = this.visible;\n\n if (this.lastRenderedVisible !== nextVisible) {\n this.lastRenderedVisible = nextVisible;\n this.renderReact();\n }\n return result;\n }\n\n render() {\n const content = `<div ref=\"react-${this.id}\"></div>`;\n // FileComponent.render() ignora i children e renderizza sempre il template file.\n // Per montare React su un ref dedicato dobbiamo saltare quel livello.\n const componentRender = Object.getPrototypeOf(\n Object.getPrototypeOf(FileComponent.prototype),\n ).render;\n return componentRender.call(this, content);\n }\n}\n","export default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n];\n","import { Components } from \"@formio/react\";\nimport AddressMapEdit from \"./AddressMap.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: AddressMapEdit,\n },\n ],\n ...extend,\n );\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"react\")):\"function\"==typeof define&&define.amd?define(\"Autocomplete\",[\"react\"],e):\"object\"==typeof exports?exports.Autocomplete=e(require(\"react\")):t.Autocomplete=e(t.React)}(this,(function(t){return function(){\"use strict\";var e={680:function(e){e.exports=t},8952:function(t,e,n){var r=n(4328),o=n(36),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not a function\")}},2096:function(t,e,n){var r=n(2424),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(\"Can't set \"+o(t)+\" as a prototype\")}},4764:function(t,e,n){var r=n(9764).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},6100:function(t,e,n){var r=n(7e3),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw new o(\"Incorrect invocation\")}},3951:function(t,e,n){var r=n(1632),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not an object\")}},2504:function(t,e,n){var r=n(4096),o=n(2495),i=n(3556),u=function(t){return function(e,n,u){var a=r(e),c=i(a);if(0===c)return!t&&-1;var s,l=o(u,c);if(t&&n!=n){for(;c>l;)if((s=a[l++])!=s)return!0}else for(;c>l;l++)if((t||l in a)&&a[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:u(!0),indexOf:u(!1)}},3364:function(t,e,n){var r=n(8992),o=n(1664),i=n(5712),u=n(4356),a=n(3556),c=n(2568),s=o([].push),l=function(t){var e=1===t,n=2===t,o=3===t,l=4===t,f=6===t,p=7===t,h=5===t||f;return function(d,v,y,g){for(var m,b,x=u(d),w=i(x),O=a(w),S=r(v,y),E=0,I=g||c,j=e?I(d,O):n||p?I(d,0):void 0;O>E;E++)if((h||E in w)&&(b=S(m=w[E],E,x),t))if(e)j[E]=b;else if(b)switch(t){case 3:return!0;case 5:return m;case 6:return E;case 2:s(j,m)}else switch(t){case 4:return!1;case 7:s(j,m)}return f?-1:o||l?l:j}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},953:function(t,e,n){var r=n(9957),o=n(9972),i=n(8504),u=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[u]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},1496:function(t,e,n){var r=n(9957);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},6728:function(t,e,n){var r=n(3476),o=n(1432),i=TypeError,u=Object.getOwnPropertyDescriptor,a=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(o(t)&&!u(t,\"length\").writable)throw new i(\"Cannot set read only .length\");return t.length=e}:function(t,e){return t.length=e}},6736:function(t,e,n){var r=n(1432),o=n(6072),i=n(1632),u=n(9972)(\"species\"),a=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(o(e)&&(e===a||r(e.prototype))||i(e)&&null===(e=e[u]))&&(e=void 0)),void 0===e?a:e}},2568:function(t,e,n){var r=n(6736);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},8696:function(t,e,n){var r=n(3951),o=n(3112);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(u){o(t,\"throw\",u)}}},1888:function(t,e,n){var r=n(1664),o=r({}.toString),i=r(\"\".slice);t.exports=function(t){return i(o(t),8,-1)}},4427:function(t,e,n){var r=n(16),o=n(4328),i=n(1888),u=n(9972)(\"toStringTag\"),a=Object,c=\"Arguments\"===i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=a(t),u))?n:c?i(e):\"Object\"===(r=i(e))&&o(e.callee)?\"Arguments\":r}},9968:function(t,e,n){var r=n(5152),o=n(9252),i=n(9444),u=n(8352);t.exports=function(t,e,n){for(var a=o(e),c=u.f,s=i.f,l=0;l<a.length;l++){var f=a[l];r(t,f)||n&&r(n,f)||c(t,f,s(e,f))}}},2272:function(t,e,n){var r=n(9957);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},3336:function(t){t.exports=function(t,e){return{value:t,done:e}}},3440:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9728:function(t){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},92:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=function(t,e,n){r?o.f(t,e,i(0,n)):t[e]=n}},2544:function(t,e,n){var r=n(5312),o=n(8352);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),o.f(t,e,n)}},6076:function(t,e,n){var r=n(4328),o=n(8352),i=n(5312),u=n(4636);t.exports=function(t,e,n,a){a||(a={});var c=a.enumerable,s=void 0!==a.name?a.name:e;if(r(n)&&i(n,s,a),a.global)c?t[e]=n:u(e,n);else{try{a.unsafe?t[e]&&(c=!0):delete t[e]}catch(l){}c?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},4036:function(t,e,n){var r=n(6076);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},4636:function(t,e,n){var r=n(6420),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},3476:function(t,e,n){var r=n(9957);t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8168:function(t,e,n){var r=n(6420),o=n(1632),i=r.document,u=o(i)&&o(i.createElement);t.exports=function(t){return u?i.createElement(t):{}}},4316:function(t){var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e(\"Maximum allowed index exceeded\");return t}},6064:function(t){t.exports=\"undefined\"!=typeof navigator&&String(navigator.userAgent)||\"\"},8504:function(t,e,n){var r,o,i=n(6420),u=n(6064),a=i.process,c=i.Deno,s=a&&a.versions||c&&c.version,l=s&&s.v8;l&&(o=(r=l.split(\".\"))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&u&&(!(r=u.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=u.match(/Chrome\\/(\\d+)/))&&(o=+r[1]),t.exports=o},8256:function(t){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},6520:function(t,e,n){var r=n(1664),o=Error,i=r(\"\".replace),u=String(new o(\"zxcasd\").stack),a=/\\n\\s*at [^:]*:[^\\n]*/,c=a.test(u);t.exports=function(t,e){if(c&&\"string\"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,a,\"\");return t}},3696:function(t,e,n){var r=n(3440),o=n(6520),i=n(9184),u=Error.captureStackTrace;t.exports=function(t,e,n,a){i&&(u?u(t,e):r(t,\"stack\",o(n,a)))}},9184:function(t,e,n){var r=n(9957),o=n(9728);t.exports=!r((function(){var t=new Error(\"a\");return!(\"stack\"in t)||(Object.defineProperty(t,\"stack\",o(1,7)),7!==t.stack)}))},9160:function(t,e,n){var r=n(6420),o=n(9444).f,i=n(3440),u=n(6076),a=n(4636),c=n(9968),s=n(6704);t.exports=function(t,e){var n,l,f,p,h,d=t.target,v=t.global,y=t.stat;if(n=v?r:y?r[d]||a(d,{}):r[d]&&r[d].prototype)for(l in e){if(p=e[l],f=t.dontCallGetSet?(h=o(n,l))&&h.value:n[l],!s(v?l:d+(y?\".\":\"#\")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(t.sham||f&&f.sham)&&i(p,\"sham\",!0),u(n,l,p,t)}}},9957:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},7176:function(t,e,n){n(880);var r=n(8448),o=n(6076),i=n(7680),u=n(9957),a=n(9972),c=n(3440),s=a(\"species\"),l=RegExp.prototype;t.exports=function(t,e,n,f){var p=a(t),h=!u((function(){var e={};return e[p]=function(){return 7},7!==\"\"[t](e)})),d=h&&!u((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags=\"\",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](\"\"),!e}));if(!h||!d||n){var v=/./[p],y=e(p,\"\"[t],(function(t,e,n,o,u){var a=e.exec;return a===i||a===l.exec?h&&!u?{done:!0,value:r(v,e,n,o)}:{done:!0,value:r(t,n,e,o)}:{done:!1}}));o(String.prototype,t,y[0]),o(l,p,y[1])}f&&c(l[p],\"sham\",!0)}},908:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.apply,u=o.call;t.exports=\"object\"==typeof Reflect&&Reflect.apply||(r?u.bind(i):function(){return u.apply(i,arguments)})},8992:function(t,e,n){var r=n(3180),o=n(8952),i=n(7332),u=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?u(t,e):function(){return t.apply(e,arguments)}}},7332:function(t,e,n){var r=n(9957);t.exports=!r((function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")}))},8448:function(t,e,n){var r=n(7332),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6208:function(t,e,n){var r=n(3476),o=n(5152),i=Function.prototype,u=r&&Object.getOwnPropertyDescriptor,a=o(i,\"name\"),c=a&&\"something\"===function(){}.name,s=a&&(!r||r&&u(i,\"name\").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:s}},5288:function(t,e,n){var r=n(1664),o=n(8952);t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},3180:function(t,e,n){var r=n(1888),o=n(1664);t.exports=function(t){if(\"Function\"===r(t))return o(t)}},1664:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.call,u=r&&o.bind.bind(i,i);t.exports=r?u:function(t){return function(){return i.apply(t,arguments)}}},5232:function(t,e,n){var r=n(6420),o=n(4328);t.exports=function(t,e){return arguments.length<2?(n=r[t],o(n)?n:void 0):r[t]&&r[t][e];var n}},6752:function(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},4504:function(t,e,n){var r=n(8952),o=n(9760);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},6420:function(t,e,n){var r=function(t){return t&&t.Math===Math&&t};t.exports=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof n.g&&n.g)||r(\"object\"==typeof this&&this)||function(){return this}()||Function(\"return this\")()},5152:function(t,e,n){var r=n(1664),o=n(4356),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},2560:function(t){t.exports={}},4168:function(t,e,n){var r=n(5232);t.exports=r(\"document\",\"documentElement\")},9888:function(t,e,n){var r=n(3476),o=n(9957),i=n(8168);t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},5712:function(t,e,n){var r=n(1664),o=n(9957),i=n(1888),u=Object,a=r(\"\".split);t.exports=o((function(){return!u(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"===i(t)?a(t,\"\"):u(t)}:u},7512:function(t,e,n){var r=n(4328),o=n(1632),i=n(4024);t.exports=function(t,e,n){var u,a;return i&&r(u=e.constructor)&&u!==n&&o(a=u.prototype)&&a!==n.prototype&&i(t,a),t}},9112:function(t,e,n){var r=n(1664),o=n(4328),i=n(3976),u=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return u(t)}),t.exports=i.inspectSource},3480:function(t,e,n){var r=n(1632),o=n(3440);t.exports=function(t,e){r(e)&&\"cause\"in e&&o(t,\"cause\",e.cause)}},9104:function(t,e,n){var r,o,i,u=n(4288),a=n(6420),c=n(1632),s=n(3440),l=n(5152),f=n(3976),p=n(6504),h=n(2560),d=\"Object already initialized\",v=a.TypeError,y=a.WeakMap;if(u||f.state){var g=f.state||(f.state=new y);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw new v(d);return e.facade=t,g.set(t,e),e},o=function(t){return g.get(t)||{}},i=function(t){return g.has(t)}}else{var m=p(\"state\");h[m]=!0,r=function(t,e){if(l(t,m))throw new v(d);return e.facade=t,s(t,m,e),e},o=function(t){return l(t,m)?t[m]:{}},i=function(t){return l(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw new v(\"Incompatible receiver, \"+t+\" required\");return n}}}},1432:function(t,e,n){var r=n(1888);t.exports=Array.isArray||function(t){return\"Array\"===r(t)}},4328:function(t){var e=\"object\"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return\"function\"==typeof t||t===e}:function(t){return\"function\"==typeof t}},6072:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(4427),a=n(5232),c=n(9112),s=function(){},l=a(\"Reflect\",\"construct\"),f=/^\\s*(?:class|function)\\b/,p=r(f.exec),h=!f.test(s),d=function(t){if(!i(t))return!1;try{return l(s,[],t),!0}catch(e){return!1}},v=function(t){if(!i(t))return!1;switch(u(t)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return h||!!p(f,c(t))}catch(e){return!0}};v.sham=!0,t.exports=!l||o((function(){var t;return d(d.call)||!d(Object)||!d((function(){t=!0}))||t}))?v:d},6704:function(t,e,n){var r=n(9957),o=n(4328),i=/#|\\.prototype\\./,u=function(t,e){var n=c[a(t)];return n===l||n!==s&&(o(e)?r(e):!!e)},a=u.normalize=function(t){return String(t).replace(i,\".\").toLowerCase()},c=u.data={},s=u.NATIVE=\"N\",l=u.POLYFILL=\"P\";t.exports=u},9760:function(t){t.exports=function(t){return null==t}},1632:function(t,e,n){var r=n(4328);t.exports=function(t){return\"object\"==typeof t?null!==t:r(t)}},2424:function(t,e,n){var r=n(1632);t.exports=function(t){return r(t)||null===t}},7048:function(t){t.exports=!1},7728:function(t,e,n){var r=n(5232),o=n(4328),i=n(7e3),u=n(6536),a=Object;t.exports=u?function(t){return\"symbol\"==typeof t}:function(t){var e=r(\"Symbol\");return o(e)&&i(e.prototype,a(t))}},3112:function(t,e,n){var r=n(8448),o=n(3951),i=n(4504);t.exports=function(t,e,n){var u,a;o(t);try{if(!(u=i(t,\"return\"))){if(\"throw\"===e)throw n;return n}u=r(u,t)}catch(c){a=!0,u=c}if(\"throw\"===e)throw n;if(a)throw u;return o(u),n}},9724:function(t,e,n){var r=n(8448),o=n(9368),i=n(3440),u=n(4036),a=n(9972),c=n(9104),s=n(4504),l=n(336).IteratorPrototype,f=n(3336),p=n(3112),h=a(\"toStringTag\"),d=\"IteratorHelper\",v=\"WrapForValidIterator\",y=c.set,g=function(t){var e=c.getterFor(t?v:d);return u(o(l),{next:function(){var n=e(this);if(t)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return f(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=e(this),o=n.iterator;if(n.done=!0,t){var i=s(o,\"return\");return i?r(i,o):f(void 0,!0)}if(n.inner)try{p(n.inner.iterator,\"normal\")}catch(u){return p(o,\"throw\",u)}return p(o,\"normal\"),f(void 0,!0)}})},m=g(!0),b=g(!1);i(b,h,\"Iterator Helper\"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?v:d,r.nextHandler=t,r.counter=0,r.done=!1,y(this,r)};return n.prototype=e?m:b,n}},5792:function(t,e,n){var r=n(8448),o=n(8952),i=n(3951),u=n(6752),a=n(9724),c=n(8696),s=a((function(){var t=this.iterator,e=i(r(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return i(this),o(t),new s(u(this),{mapper:t})}},336:function(t,e,n){var r,o,i,u=n(9957),a=n(4328),c=n(1632),s=n(9368),l=n(7796),f=n(6076),p=n(9972),h=n(7048),d=p(\"iterator\"),v=!1;[].keys&&(\"next\"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):v=!0),!c(r)||u((function(){var t={};return r[d].call(t)!==t}))?r={}:h&&(r=s(r)),a(r[d])||f(r,d,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},3556:function(t,e,n){var r=n(7584);t.exports=function(t){return r(t.length)}},5312:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(5152),a=n(3476),c=n(6208).CONFIGURABLE,s=n(9112),l=n(9104),f=l.enforce,p=l.get,h=String,d=Object.defineProperty,v=r(\"\".slice),y=r(\"\".replace),g=r([].join),m=a&&!o((function(){return 8!==d((function(){}),\"length\",{value:8}).length})),b=String(String).split(\"String\"),x=t.exports=function(t,e,n){\"Symbol(\"===v(h(e),0,7)&&(e=\"[\"+y(h(e),/^Symbol\\(([^)]*)\\).*$/,\"$1\")+\"]\"),n&&n.getter&&(e=\"get \"+e),n&&n.setter&&(e=\"set \"+e),(!u(t,\"name\")||c&&t.name!==e)&&(a?d(t,\"name\",{value:e,configurable:!0}):t.name=e),m&&n&&u(n,\"arity\")&&t.length!==n.arity&&d(t,\"length\",{value:n.arity});try{n&&u(n,\"constructor\")&&n.constructor?a&&d(t,\"prototype\",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(o){}var r=f(t);return u(r,\"source\")||(r.source=g(b,\"string\"==typeof e?e:\"\")),t};Function.prototype.toString=x((function(){return i(this)&&p(this).source||s(this)}),\"toString\")},1748:function(t){var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},8948:function(t,e,n){var r=n(5016);t.exports=function(t,e){return void 0===t?arguments.length<2?\"\":e:r(t)}},9292:function(t,e,n){var r=n(3476),o=n(1664),i=n(8448),u=n(9957),a=n(1531),c=n(9392),s=n(8912),l=n(4356),f=n(5712),p=Object.assign,h=Object.defineProperty,d=o([].concat);t.exports=!p||u((function(){if(r&&1!==p({b:1},p(h({},\"a\",{enumerable:!0,get:function(){h(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(\"assign detection\"),o=\"abcdefghijklmnopqrst\";return t[n]=7,o.split(\"\").forEach((function(t){e[t]=t})),7!==p({},t)[n]||a(p({},e)).join(\"\")!==o}))?function(t,e){for(var n=l(t),o=arguments.length,u=1,p=c.f,h=s.f;o>u;)for(var v,y=f(arguments[u++]),g=p?d(a(y),p(y)):a(y),m=g.length,b=0;m>b;)v=g[b++],r&&!i(h,y,v)||(n[v]=y[v]);return n}:p},9368:function(t,e,n){var r,o=n(3951),i=n(2056),u=n(8256),a=n(2560),c=n(4168),s=n(8168),l=n(6504),f=\"prototype\",p=\"script\",h=l(\"IE_PROTO\"),d=function(){},v=function(t){return\"<\"+p+\">\"+t+\"</\"+p+\">\"},y=function(t){t.write(v(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{r=new ActiveXObject(\"htmlfile\")}catch(i){}var t,e,n;g=\"undefined\"!=typeof document?document.domain&&r?y(r):(e=s(\"iframe\"),n=\"java\"+p+\":\",e.style.display=\"none\",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(v(\"document.F=Object\")),t.close(),t.F):y(r);for(var o=u.length;o--;)delete g[f][u[o]];return g()};a[h]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(d[f]=o(t),n=new d,d[f]=null,n[h]=t):n=g(),void 0===e?n:i.f(n,e)}},2056:function(t,e,n){var r=n(3476),o=n(1576),i=n(8352),u=n(3951),a=n(4096),c=n(1531);e.f=r&&!o?Object.defineProperties:function(t,e){u(t);for(var n,r=a(e),o=c(e),s=o.length,l=0;s>l;)i.f(t,n=o[l++],r[n]);return t}},8352:function(t,e,n){var r=n(3476),o=n(9888),i=n(1576),u=n(3951),a=n(88),c=TypeError,s=Object.defineProperty,l=Object.getOwnPropertyDescriptor,f=\"enumerable\",p=\"configurable\",h=\"writable\";e.f=r?i?function(t,e,n){if(u(t),e=a(e),u(n),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in n&&h in n&&!n[h]){var r=l(t,e);r&&r[h]&&(t[e]=n.value,n={configurable:p in n?n[p]:r[p],enumerable:f in n?n[f]:r[f],writable:!1})}return s(t,e,n)}:s:function(t,e,n){if(u(t),e=a(e),u(n),o)try{return s(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw new c(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},9444:function(t,e,n){var r=n(3476),o=n(8448),i=n(8912),u=n(9728),a=n(4096),c=n(88),s=n(5152),l=n(9888),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e),l)try{return f(t,e)}catch(n){}if(s(t,e))return u(!o(i.f,t,e),t[e])}},5048:function(t,e,n){var r=n(9008),o=n(8256).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},9392:function(t,e){e.f=Object.getOwnPropertySymbols},7796:function(t,e,n){var r=n(5152),o=n(4328),i=n(4356),u=n(6504),a=n(2272),c=u(\"IE_PROTO\"),s=Object,l=s.prototype;t.exports=a?s.getPrototypeOf:function(t){var e=i(t);if(r(e,c))return e[c];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof s?l:null}},7e3:function(t,e,n){var r=n(1664);t.exports=r({}.isPrototypeOf)},9008:function(t,e,n){var r=n(1664),o=n(5152),i=n(4096),u=n(2504).indexOf,a=n(2560),c=r([].push);t.exports=function(t,e){var n,r=i(t),s=0,l=[];for(n in r)!o(a,n)&&o(r,n)&&c(l,n);for(;e.length>s;)o(r,n=e[s++])&&(~u(l,n)||c(l,n));return l}},1531:function(t,e,n){var r=n(9008),o=n(8256);t.exports=Object.keys||function(t){return r(t,o)}},8912:function(t,e){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},4024:function(t,e,n){var r=n(5288),o=n(3951),i=n(2096);t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=r(Object.prototype,\"__proto__\",\"set\"))(n,[]),e=n instanceof Array}catch(u){}return function(n,r){return o(n),i(r),e?t(n,r):n.__proto__=r,n}}():void 0)},7032:function(t,e,n){var r=n(16),o=n(4427);t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},2104:function(t,e,n){var r=n(8448),o=n(4328),i=n(1632),u=TypeError;t.exports=function(t,e){var n,a;if(\"string\"===e&&o(n=t.toString)&&!i(a=r(n,t)))return a;if(o(n=t.valueOf)&&!i(a=r(n,t)))return a;if(\"string\"!==e&&o(n=t.toString)&&!i(a=r(n,t)))return a;throw new u(\"Can't convert object to primitive value\")}},9252:function(t,e,n){var r=n(5232),o=n(1664),i=n(5048),u=n(9392),a=n(3951),c=o([].concat);t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=i.f(a(t)),n=u.f;return n?c(e,n(t)):e}},584:function(t,e,n){var r=n(8352).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},9092:function(t,e,n){var r=n(8448),o=n(3951),i=n(4328),u=n(1888),a=n(7680),c=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var s=r(n,t,e);return null!==s&&o(s),s}if(\"RegExp\"===u(t))return r(a,t,e);throw new c(\"RegExp#exec called on incompatible receiver\")}},7680:function(t,e,n){var r,o,i=n(8448),u=n(1664),a=n(5016),c=n(8872),s=n(3548),l=n(4696),f=n(9368),p=n(9104).get,h=n(8e3),d=n(9124),v=l(\"native-string-replace\",String.prototype.replace),y=RegExp.prototype.exec,g=y,m=u(\"\".charAt),b=u(\"\".indexOf),x=u(\"\".replace),w=u(\"\".slice),O=(o=/b*/g,i(y,r=/a/,\"a\"),i(y,o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),S=s.BROKEN_CARET,E=void 0!==/()??/.exec(\"\")[1];(O||E||S||h||d)&&(g=function(t){var e,n,r,o,u,s,l,h=this,d=p(h),I=a(t),j=d.raw;if(j)return j.lastIndex=h.lastIndex,e=i(g,j,I),h.lastIndex=j.lastIndex,e;var C=d.groups,_=S&&h.sticky,A=i(c,h),P=h.source,R=0,T=I;if(_&&(A=x(A,\"y\",\"\"),-1===b(A,\"g\")&&(A+=\"g\"),T=w(I,h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&\"\\n\"!==m(I,h.lastIndex-1))&&(P=\"(?: \"+P+\")\",T=\" \"+T,R++),n=new RegExp(\"^(?:\"+P+\")\",A)),E&&(n=new RegExp(\"^\"+P+\"$(?!\\\\s)\",A)),O&&(r=h.lastIndex),o=i(y,_?n:h,T),_?o?(o.input=w(o.input,R),o[0]=w(o[0],R),o.index=h.lastIndex,h.lastIndex+=o[0].length):h.lastIndex=0:O&&o&&(h.lastIndex=h.global?o.index+o[0].length:r),E&&o&&o.length>1&&i(v,o[0],n,(function(){for(u=1;u<arguments.length-2;u++)void 0===arguments[u]&&(o[u]=void 0)})),o&&C)for(o.groups=s=f(null),u=0;u<C.length;u++)s[(l=C[u])[0]]=o[l[1]];return o}),t.exports=g},8872:function(t,e,n){var r=n(3951);t.exports=function(){var t=r(this),e=\"\";return t.hasIndices&&(e+=\"d\"),t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.unicodeSets&&(e+=\"v\"),t.sticky&&(e+=\"y\"),e}},3548:function(t,e,n){var r=n(9957),o=n(6420).RegExp,i=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!==t.exec(\"abcd\")})),u=i||r((function(){return!o(\"a\",\"y\").sticky})),a=i||r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!==t.exec(\"str\")}));t.exports={BROKEN_CARET:a,MISSED_STICKY:u,UNSUPPORTED_Y:i}},8e3:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\".\",\"s\");return!(t.dotAll&&t.test(\"\\n\")&&\"s\"===t.flags)}))},9124:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\"(?<a>b)\",\"g\");return\"b\"!==t.exec(\"b\").groups.a||\"bc\"!==\"b\".replace(t,\"$<a>c\")}))},5436:function(t,e,n){var r=n(9760),o=TypeError;t.exports=function(t){if(r(t))throw new o(\"Can't call method on \"+t);return t}},6504:function(t,e,n){var r=n(4696),o=n(7776),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},3976:function(t,e,n){var r=n(7048),o=n(6420),i=n(4636),u=\"__core-js_shared__\",a=t.exports=o[u]||i(u,{});(a.versions||(a.versions=[])).push({version:\"3.36.0\",mode:r?\"pure\":\"global\",copyright:\"© 2014-2024 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},4696:function(t,e,n){var r=n(3976);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},9764:function(t,e,n){var r=n(1664),o=n(6180),i=n(5016),u=n(5436),a=r(\"\".charAt),c=r(\"\".charCodeAt),s=r(\"\".slice),l=function(t){return function(e,n){var r,l,f=i(u(e)),p=o(n),h=f.length;return p<0||p>=h?t?\"\":void 0:(r=c(f,p))<55296||r>56319||p+1===h||(l=c(f,p+1))<56320||l>57343?t?a(f,p):r:t?s(f,p,p+2):l-56320+(r-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},772:function(t,e,n){var r=n(8504),o=n(9957),i=n(6420).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol(\"symbol detection\");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},2495:function(t,e,n){var r=n(6180),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},4096:function(t,e,n){var r=n(5712),o=n(5436);t.exports=function(t){return r(o(t))}},6180:function(t,e,n){var r=n(1748);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},7584:function(t,e,n){var r=n(6180),o=Math.min;t.exports=function(t){var e=r(t);return e>0?o(e,9007199254740991):0}},4356:function(t,e,n){var r=n(5436),o=Object;t.exports=function(t){return o(r(t))}},7024:function(t,e,n){var r=n(8448),o=n(1632),i=n(7728),u=n(4504),a=n(2104),c=n(9972),s=TypeError,l=c(\"toPrimitive\");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,c=u(t,l);if(c){if(void 0===e&&(e=\"default\"),n=r(c,t,e),!o(n)||i(n))return n;throw new s(\"Can't convert object to primitive value\")}return void 0===e&&(e=\"number\"),a(t,e)}},88:function(t,e,n){var r=n(7024),o=n(7728);t.exports=function(t){var e=r(t,\"string\");return o(e)?e:e+\"\"}},16:function(t,e,n){var r={};r[n(9972)(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},5016:function(t,e,n){var r=n(4427),o=String;t.exports=function(t){if(\"Symbol\"===r(t))throw new TypeError(\"Cannot convert a Symbol value to a string\");return o(t)}},36:function(t){var e=String;t.exports=function(t){try{return e(t)}catch(n){return\"Object\"}}},7776:function(t,e,n){var r=n(1664),o=0,i=Math.random(),u=r(1..toString);t.exports=function(t){return\"Symbol(\"+(void 0===t?\"\":t)+\")_\"+u(++o+i,36)}},6536:function(t,e,n){var r=n(772);t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},1576:function(t,e,n){var r=n(3476),o=n(9957);t.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype}))},4288:function(t,e,n){var r=n(6420),o=n(4328),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},9972:function(t,e,n){var r=n(6420),o=n(4696),i=n(5152),u=n(7776),a=n(772),c=n(6536),s=r.Symbol,l=o(\"wks\"),f=c?s.for||s:s&&s.withoutSetter||u;t.exports=function(t){return i(l,t)||(l[t]=a&&i(s,t)?s[t]:f(\"Symbol.\"+t)),l[t]}},6488:function(t,e,n){var r=n(5232),o=n(5152),i=n(3440),u=n(7e3),a=n(4024),c=n(9968),s=n(584),l=n(7512),f=n(8948),p=n(3480),h=n(3696),d=n(3476),v=n(7048);t.exports=function(t,e,n,y){var g=\"stackTraceLimit\",m=y?2:1,b=t.split(\".\"),x=b[b.length-1],w=r.apply(null,b);if(w){var O=w.prototype;if(!v&&o(O,\"cause\")&&delete O.cause,!n)return w;var S=r(\"Error\"),E=e((function(t,e){var n=f(y?e:t,void 0),r=y?new w(t):new w;return void 0!==n&&i(r,\"message\",n),h(r,E,r.stack,2),this&&u(O,this)&&l(r,this,E),arguments.length>m&&p(r,arguments[m]),r}));if(E.prototype=O,\"Error\"!==x?a?a(E,S):c(E,S,{name:!0}):d&&g in w&&(s(E,w,g),s(E,w,\"prepareStackTrace\")),c(E,w),!v)try{O.name!==x&&i(O,\"name\",x),O.constructor=E}catch(I){}return E}}},7476:function(t,e,n){var r=n(9160),o=n(9957),i=n(1432),u=n(1632),a=n(4356),c=n(3556),s=n(4316),l=n(92),f=n(2568),p=n(953),h=n(9972),d=n(8504),v=h(\"isConcatSpreadable\"),y=d>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=function(t){if(!u(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,arity:1,forced:!y||!p(\"concat\")},{concat:function(t){var e,n,r,o,i,u=a(this),p=f(u,0),h=0;for(e=-1,r=arguments.length;e<r;e++)if(g(i=-1===e?u:arguments[e]))for(o=c(i),s(h+o),n=0;n<o;n++,h++)n in i&&l(p,h,i[n]);else s(h+1),l(p,h++,i);return p.length=h,p}})},6932:function(t,e,n){var r=n(9160),o=n(3364).filter;r({target:\"Array\",proto:!0,forced:!n(953)(\"filter\")},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},700:function(t,e,n){var r=n(9160),o=n(1664),i=n(5712),u=n(4096),a=n(1496),c=o([].join);r({target:\"Array\",proto:!0,forced:i!==Object||!a(\"join\",\",\")},{join:function(t){return c(u(this),void 0===t?\",\":t)}})},4456:function(t,e,n){var r=n(9160),o=n(3364).map;r({target:\"Array\",proto:!0,forced:!n(953)(\"map\")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},4728:function(t,e,n){var r=n(9160),o=n(4356),i=n(3556),u=n(6728),a=n(4316);r({target:\"Array\",proto:!0,arity:1,forced:n(9957)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],\"length\",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=o(this),n=i(e),r=arguments.length;a(n+r);for(var c=0;c<r;c++)e[n]=arguments[c],n++;return u(e,n),n}})},8752:function(t,e,n){var r=n(9160),o=n(6420),i=n(908),u=n(6488),a=\"WebAssembly\",c=o[a],s=7!==new Error(\"e\",{cause:7}).cause,l=function(t,e){var n={};n[t]=u(t,e,s),r({global:!0,constructor:!0,arity:1,forced:s},n)},f=function(t,e){if(c&&c[t]){var n={};n[t]=u(a+\".\"+t,e,s),r({target:a,stat:!0,constructor:!0,arity:1,forced:s},n)}};l(\"Error\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"EvalError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"RangeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"ReferenceError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"SyntaxError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"TypeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"URIError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"CompileError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"LinkError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"RuntimeError\",(function(t){return function(e){return i(t,this,arguments)}}))},508:function(t,e,n){var r=n(3476),o=n(6208).EXISTS,i=n(1664),u=n(2544),a=Function.prototype,c=i(a.toString),s=/function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/,l=i(s.exec);r&&!o&&u(a,\"name\",{configurable:!0,get:function(){try{return l(s,c(this))[1]}catch(t){return\"\"}}})},232:function(t,e,n){var r=n(9160),o=n(9292);r({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},5443:function(t,e,n){var r=n(16),o=n(6076),i=n(7032);r||o(Object.prototype,\"toString\",i,{unsafe:!0})},880:function(t,e,n){var r=n(9160),o=n(7680);r({target:\"RegExp\",proto:!0,forced:/./.exec!==o},{exec:o})},9836:function(t,e,n){var r=n(8448),o=n(7176),i=n(3951),u=n(9760),a=n(7584),c=n(5016),s=n(5436),l=n(4504),f=n(4764),p=n(9092);o(\"match\",(function(t,e,n){return[function(e){var n=s(this),o=u(e)?void 0:l(e,t);return o?r(o,e,n):new RegExp(e)[t](c(n))},function(t){var r=i(this),o=c(t),u=n(e,r,o);if(u.done)return u.value;if(!r.global)return p(r,o);var s=r.unicode;r.lastIndex=0;for(var l,h=[],d=0;null!==(l=p(r,o));){var v=c(l[0]);h[d]=v,\"\"===v&&(r.lastIndex=f(o,a(r.lastIndex),s)),d++}return 0===d?null:h}]}))},3536:function(t,e,n){var r=n(9160),o=n(6420),i=n(6100),u=n(3951),a=n(4328),c=n(7796),s=n(2544),l=n(92),f=n(9957),p=n(5152),h=n(9972),d=n(336).IteratorPrototype,v=n(3476),y=n(7048),g=\"constructor\",m=\"Iterator\",b=h(\"toStringTag\"),x=TypeError,w=o[m],O=y||!a(w)||w.prototype!==d||!f((function(){w({})})),S=function(){if(i(this,d),c(this)===d)throw new x(\"Abstract class Iterator not directly constructable\")},E=function(t,e){v?s(d,t,{configurable:!0,get:function(){return e},set:function(e){if(u(this),this===d)throw new x(\"You can't redefine this property\");p(this,t)?this[t]=e:l(this,t,e)}}):d[t]=e};p(d,b)||E(b,m),!O&&p(d,g)&&d[g]!==Object||E(g,S),S.prototype=d,r({global:!0,constructor:!0,forced:O},{Iterator:S})},2144:function(t,e,n){var r=n(9160),o=n(8448),i=n(8952),u=n(3951),a=n(6752),c=n(9724),s=n(8696),l=n(7048),f=c((function(){for(var t,e,n=this.iterator,r=this.predicate,i=this.next;;){if(t=u(o(i,n)),this.done=!!t.done)return;if(e=t.value,s(n,r,[e,this.counter++],!0))return e}}));r({target:\"Iterator\",proto:!0,real:!0,forced:l},{filter:function(t){return u(this),i(t),new f(a(this),{predicate:t})}})},9080:function(t,e,n){var r=n(9160),o=n(5792);r({target:\"Iterator\",proto:!0,real:!0,forced:n(7048)},{map:o})}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var i=n[t]={exports:{}};return e[t].call(i.exports,i,i.exports,r),i.exports}r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(t){if(\"object\"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})};var o={};return function(){r.r(o),r.d(o,{default:function(){return f}});r(8752),r(6932),r(700),r(4456),r(4728),r(508),r(232),r(5443),r(880),r(9836),r(3536),r(2144),r(9080);var t=r(680);r(7476);function e(t,n){return e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},e(t,n)}var n=function(n){var r,o;function i(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).state={bump:!1,debounced:!1},t}o=n,(r=i).prototype=Object.create(o.prototype),r.prototype.constructor=r,e(r,o);var u=i.prototype;return u.componentWillMount=function(){var t,e,n,r,o=this;this.debounceStatusUpdate=(t=function(){if(!o.state.debounced){var t=!o.props.isInFocus||o.props.validChoiceMade;o.setState((function(e){return{bump:!e.bump,debounced:!0,silenced:t}}))}},e=1400,function(){var o=this,i=arguments,u=n&&!r;clearTimeout(r),r=setTimeout((function(){r=null,n||t.apply(o,i)}),e),u&&t.apply(o,i)})},u.componentWillReceiveProps=function(t){t.queryLength;this.setState({debounced:!1})},u.render=function(){var e=this.props,n=e.id,r=e.length,o=e.queryLength,i=e.minQueryLength,u=e.selectedOption,a=e.selectedOptionIndex,c=e.tQueryTooShort,s=e.tNoResults,l=e.tSelectedOption,f=e.tResults,p=e.className,h=this.state,d=h.bump,v=h.debounced,y=h.silenced,g=o<i,m=0===r,b=u?l(u,r,a):\"\",x=null;return x=g?c(i):m?s():f(r,b),this.debounceStatusUpdate(),(0,t.createElement)(\"div\",{className:p,style:{border:\"0\",clip:\"rect(0 0 0 0)\",height:\"1px\",marginBottom:\"-1px\",marginRight:\"-1px\",overflow:\"hidden\",padding:\"0\",position:\"absolute\",whiteSpace:\"nowrap\",width:\"1px\"}},(0,t.createElement)(\"div\",{id:n+\"__status--A\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},!y&&v&&d?x:\"\"),(0,t.createElement)(\"div\",{id:n+\"__status--B\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},y||!v||d?\"\":x))},i}(t.Component);n.defaultProps={tQueryTooShort:function(t){return\"Type in \"+t+\" or more characters for results\"},tNoResults:function(){return\"No search results\"},tSelectedOption:function(t,e,n){return t+\" \"+(n+1)+\" of \"+e+\" is highlighted\"},tResults:function(t,e){return t+\" \"+(1===t?\"result\":\"results\")+\" \"+(1===t?\"is\":\"are\")+\" available. \"+e}};var i=function(e){var n=e.className;return(0,t.createElement)(\"svg\",{version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",className:n,focusable:\"false\"},(0,t.createElement)(\"g\",{stroke:\"none\",fill:\"none\",\"fill-rule\":\"evenodd\"},(0,t.createElement)(\"polygon\",{fill:\"#000000\",points:\"0 0 22 0 11 17\"})))};function u(){return u=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},u.apply(this,arguments)}function a(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}var s={13:\"enter\",27:\"escape\",32:\"space\",38:\"up\",40:\"down\"};function l(){return\"undefined\"!=typeof navigator&&!(!navigator.userAgent.match(/(iPod|iPhone|iPad)/g)||!navigator.userAgent.match(/AppleWebKit/g))}var f=function(e){var r,o;function i(t){var n;return(n=e.call(this,t)||this).elementReferences={},n.state={focused:null,hovered:null,menuOpen:!1,options:t.defaultValue?[t.defaultValue]:[],query:t.defaultValue,validChoiceMade:!1,selected:null,ariaHint:!0},n.handleComponentBlur=n.handleComponentBlur.bind(a(n)),n.handleKeyDown=n.handleKeyDown.bind(a(n)),n.handleUpArrow=n.handleUpArrow.bind(a(n)),n.handleDownArrow=n.handleDownArrow.bind(a(n)),n.handleEnter=n.handleEnter.bind(a(n)),n.handlePrintableKey=n.handlePrintableKey.bind(a(n)),n.handleListMouseLeave=n.handleListMouseLeave.bind(a(n)),n.handleOptionBlur=n.handleOptionBlur.bind(a(n)),n.handleOptionClick=n.handleOptionClick.bind(a(n)),n.handleOptionFocus=n.handleOptionFocus.bind(a(n)),n.handleOptionMouseDown=n.handleOptionMouseDown.bind(a(n)),n.handleOptionMouseEnter=n.handleOptionMouseEnter.bind(a(n)),n.handleInputBlur=n.handleInputBlur.bind(a(n)),n.handleInputChange=n.handleInputChange.bind(a(n)),n.handleInputClick=n.handleInputClick.bind(a(n)),n.handleInputFocus=n.handleInputFocus.bind(a(n)),n.pollInputElement=n.pollInputElement.bind(a(n)),n.getDirectInputChanges=n.getDirectInputChanges.bind(a(n)),n}o=e,(r=i).prototype=Object.create(o.prototype),r.prototype.constructor=r,c(r,o);var f=i.prototype;return f.isQueryAnOption=function(t,e){var n=this;return-1!==e.map((function(t){return n.templateInputValue(t).toLowerCase()})).indexOf(t.toLowerCase())},f.componentDidMount=function(){this.pollInputElement()},f.componentWillUnmount=function(){clearTimeout(this.$pollInput)},f.pollInputElement=function(){var t=this;this.getDirectInputChanges(),this.$pollInput=setTimeout((function(){t.pollInputElement()}),100)},f.getDirectInputChanges=function(){var t=this.elementReferences[-1];t&&t.value!==this.state.query&&this.handleInputChange({target:{value:t.value}})},f.componentDidUpdate=function(t,e){var n=this.state.focused,r=null===n,o=e.focused!==n;o&&!r&&this.elementReferences[n].focus();var i=-1===n,u=o&&null===e.focused;if(i&&u){var a=this.elementReferences[n];a.setSelectionRange(0,a.value.length)}},f.hasAutoselect=function(){return!l()&&this.props.autoselect},f.templateInputValue=function(t){var e=this.props.templates&&this.props.templates.inputValue;return e?e(t):t},f.templateSuggestion=function(t){var e=this.props.templates&&this.props.templates.suggestion;return e?e(t):t},f.handleComponentBlur=function(t){var e,n=this.state,r=n.options,o=n.query,i=n.selected;this.props.confirmOnBlur?(e=t.query||o,this.props.onConfirm(r[i])):e=o,this.setState({focused:null,menuOpen:t.menuOpen||!1,query:e,selected:null,validChoiceMade:this.isQueryAnOption(e,r)})},f.handleListMouseLeave=function(t){this.setState({hovered:null})},f.handleOptionBlur=function(t,e){var n=this.state,r=n.focused,o=n.menuOpen,i=n.options,u=n.selected,a=null===t.relatedTarget,c=t.relatedTarget===this.elementReferences[-1],s=r!==e&&-1!==r;if(!s&&a||!(s||c)){var f=o&&l();this.handleComponentBlur({menuOpen:f,query:this.templateInputValue(i[u])})}},f.handleInputBlur=function(t){var e=this.state,n=e.focused,r=e.menuOpen,o=e.options,i=e.query,u=e.selected;if(!(-1!==n)){var a=r&&l(),c=l()?i:this.templateInputValue(o[u]);this.handleComponentBlur({menuOpen:a,query:c})}},f.handleInputChange=function(t){var e=this,n=this.props,r=n.minLength,o=n.source,i=n.showAllValues,u=this.hasAutoselect(),a=t.target.value,c=0===a.length,s=this.state.query!==a,l=a.length>=r;this.setState({query:a,ariaHint:c}),i||!c&&s&&l?o(a,(function(t){var n=t.length>0;e.setState({menuOpen:n,options:t,selected:u&&n?0:-1,validChoiceMade:!1})})):!c&&l||this.setState({menuOpen:!1,options:[]})},f.handleInputClick=function(t){this.handleInputChange(t)},f.handleInputFocus=function(t){var e=this.state,n=e.query,r=e.validChoiceMade,o=e.options,i=this.props.minLength,u=!r&&n.length>=i&&o.length>0;u?this.setState((function(t){var e=t.menuOpen;return{focused:-1,menuOpen:u||e,selected:-1}})):this.setState({focused:-1})},f.handleOptionFocus=function(t){this.setState({focused:t,hovered:null,selected:t})},f.handleOptionMouseEnter=function(t,e){l()||this.setState({hovered:e})},f.handleOptionClick=function(t,e){var n=this.state.options[e],r=this.templateInputValue(n);this.props.onConfirm(n),this.setState({focused:-1,hovered:null,menuOpen:!1,query:r,selected:-1,validChoiceMade:!0}),this.forceUpdate()},f.handleOptionMouseDown=function(t){t.preventDefault()},f.handleUpArrow=function(t){t.preventDefault();var e=this.state,n=e.menuOpen,r=e.selected;-1!==r&&n&&this.handleOptionFocus(r-1)},f.handleDownArrow=function(t){var e=this;if(t.preventDefault(),this.props.showAllValues&&!1===this.state.menuOpen)t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t,selected:0,focused:0,hovered:null})}));else if(!0===this.state.menuOpen){var n=this.state,r=n.menuOpen,o=n.options,i=n.selected;i!==o.length-1&&r&&this.handleOptionFocus(i+1)}},f.handleSpace=function(t){var e=this;this.props.showAllValues&&!1===this.state.menuOpen&&\"\"===this.state.query&&(t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t})}))),-1!==this.state.focused&&(t.preventDefault(),this.handleOptionClick(t,this.state.focused))},f.handleEnter=function(t){this.state.menuOpen&&(t.preventDefault(),this.state.selected>=0&&this.handleOptionClick(t,this.state.selected))},f.handlePrintableKey=function(t){var e=this.elementReferences[-1];t.target===e||e.focus()},f.handleKeyDown=function(t){switch(s[t.keyCode]){case\"up\":this.handleUpArrow(t);break;case\"down\":this.handleDownArrow(t);break;case\"space\":this.handleSpace(t);break;case\"enter\":this.handleEnter(t);break;case\"escape\":this.handleComponentBlur({query:this.state.query});break;default:((e=t.keyCode)>47&&e<58||32===e||8===e||e>64&&e<91||e>95&&e<112||e>185&&e<193||e>218&&e<223)&&this.handlePrintableKey(t)}var e},f.render=function(){var e,r=this,o=this.props,i=o.cssNamespace,a=o.displayMenu,c=o.id,s=o.minLength,f=o.name,p=o.placeholder,h=o.required,d=o.showAllValues,v=o.tNoResults,y=o.tStatusQueryTooShort,g=o.tStatusNoResults,m=o.tStatusSelectedOption,b=o.tStatusResults,x=o.tAssistiveHint,w=o.dropdownArrow,O=o.menuAttributes,S=o.inputClasses,E=o.hintClasses,I=o.menuClasses,j=this.state,C=j.focused,_=j.hovered,A=j.menuOpen,P=j.options,R=j.query,T=j.selected,k=j.ariaHint,M=j.validChoiceMade,D=this.hasAutoselect(),N=-1===C,F=0===P.length,L=0!==R.length,B=R.length>=s,q=this.props.showNoOptionsFound&&N&&F&&L&&B,V=i+\"__wrapper\",U=i+\"__status\",K=i+\"__dropdown-arrow-down\",H=-1!==C&&null!==C,W=i+\"__option\",z=i+\"__hint\",Q=this.templateInputValue(P[T]),G=Q&&0===Q.toLowerCase().indexOf(R.toLowerCase())&&D?R+Q.substr(R.length):\"\",$=c+\"__assistiveHint\",Y={\"aria-describedby\":k?$:null,\"aria-expanded\":A?\"true\":\"false\",\"aria-activedescendant\":H?c+\"__option--\"+C:null,\"aria-controls\":c+\"__listbox\",\"aria-autocomplete\":this.hasAutoselect()?\"both\":\"list\"};d&&\"string\"==typeof(e=w({className:K}))&&(e=(0,t.createElement)(\"div\",{className:i+\"__dropdown-arrow-down-wrapper\",dangerouslySetInnerHTML:{__html:e}}));var X=i+\"__input\",J=[X,this.props.showAllValues?X+\"--show-all-values\":X+\"--default\"];null!==C&&J.push(X+\"--focused\"),S&&J.push(S);var Z=i+\"__menu\",tt=[Z,Z+\"--\"+a,Z+\"--\"+(A||q?\"visible\":\"hidden\")];I&&tt.push(I),(null!=O&&O.class||null!=O&&O.className)&&tt.push((null==O?void 0:O.class)||(null==O?void 0:O.className));var et=Object.assign({\"aria-labelledby\":c},O,{id:c+\"__listbox\",role:\"listbox\",className:tt.join(\" \"),onMouseLeave:this.handleListMouseLeave});return delete et.class,(0,t.createElement)(\"div\",{className:V,onKeyDown:this.handleKeyDown},(0,t.createElement)(n,{id:c,length:P.length,queryLength:R.length,minQueryLength:s,selectedOption:this.templateInputValue(P[T]),selectedOptionIndex:T,validChoiceMade:M,isInFocus:null!==this.state.focused,tQueryTooShort:y,tNoResults:g,tSelectedOption:m,tResults:b,className:U}),G&&(0,t.createElement)(\"span\",null,(0,t.createElement)(\"input\",{className:[z,null===E?S:E].filter(Boolean).join(\" \"),readonly:!0,tabIndex:\"-1\",value:G})),(0,t.createElement)(\"input\",u({},Y,{autoComplete:\"off\",className:J.join(\" \"),id:c,onClick:this.handleInputClick,onBlur:this.handleInputBlur},{onChange:this.handleInputChange},{onFocus:this.handleInputFocus,name:f,placeholder:p,ref:function(t){r.elementReferences[-1]=t},type:\"text\",role:\"combobox\",required:h,value:R})),e,(0,t.createElement)(\"ul\",et,P.map((function(e,n){var o=(-1===C?T===n:C===n)&&null===_?\" \"+W+\"--focused\":\"\",i=n%2?\" \"+W+\"--odd\":\"\",u=l()?\"<span id=\"+c+\"__option-suffix--\"+n+' style=\"border:0;clip:rect(0 0 0 0);height:1px;marginBottom:-1px;marginRight:-1px;overflow:hidden;padding:0;position:absolute;whiteSpace:nowrap;width:1px\"> '+(n+1)+\" of \"+P.length+\"</span>\":\"\";return(0,t.createElement)(\"li\",{\"aria-selected\":C===n?\"true\":\"false\",className:\"\"+W+o+i,dangerouslySetInnerHTML:{__html:r.templateSuggestion(e)+u},id:c+\"__option--\"+n,key:n,onBlur:function(t){return r.handleOptionBlur(t,n)},onClick:function(t){return r.handleOptionClick(t,n)},onMouseDown:r.handleOptionMouseDown,onMouseEnter:function(t){return r.handleOptionMouseEnter(t,n)},ref:function(t){r.elementReferences[n]=t},role:\"option\",tabIndex:\"-1\",\"aria-posinset\":n+1,\"aria-setsize\":P.length})})),q&&(0,t.createElement)(\"li\",{className:W+\" \"+W+\"--no-results\",role:\"option\",\"aria-disabled\":\"true\"},v())),(0,t.createElement)(\"span\",{id:$,style:{display:\"none\"}},x()))},i}(t.Component);f.defaultProps={autoselect:!1,cssNamespace:\"autocomplete\",defaultValue:\"\",displayMenu:\"inline\",minLength:0,name:\"input-autocomplete\",placeholder:\"\",onConfirm:function(){},confirmOnBlur:!0,showNoOptionsFound:!0,showAllValues:!1,required:!1,tNoResults:function(){return\"No results found\"},tAssistiveHint:function(){return\"When autocomplete results are available use up and down arrows to review and enter to select. Touch device users, explore by touch or with swipe gestures.\"},dropdownArrow:i,menuAttributes:{},inputClasses:null,hintClasses:null,menuClasses:null}}(),o}()}));\n//# sourceMappingURL=accessible-autocomplete.react.min.js.map","module.exports = require('./dist/lib/accessible-autocomplete.react.min')\n","import React, { useEffect, useRef, useState } from \"react\";\nimport Autocomplete from \"accessible-autocomplete/react\";\nimport { Icon } from \"design-react-kit\";\n\nconst AccessibleAutocomplete = ({\n value,\n defaultValue = \"\",\n onConfirm,\n source,\n disabled,\n onClear,\n tClearInput = () => \"Clear input\",\n ...autocompleteProps\n}) => {\n const inputRef = useRef(null);\n\n const updateInputValue = (val) => {\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.elementReferences[-1].value = val;\n }\n }, 0);\n };\n\n useEffect(() => {\n if (value !== undefined) {\n updateInputValue(value);\n }\n }, [value]);\n\n useEffect(() => {\n if (disabled) {\n if (inputRef.current) {\n inputRef.current.elementReferences[-1].disabled = true;\n }\n } else {\n if (inputRef.current) {\n inputRef.current.elementReferences[-1].disabled = false;\n }\n }\n }, [disabled]);\n\n const handleClear = () => {\n onClear && onClear();\n };\n\n const handleSource = (query, populateResults) => {\n if (\n inputRef.current.elementReferences[\"-1\"].classList.contains(\n \"autocomplete__input--focused\",\n )\n ) {\n source(query, populateResults);\n }\n };\n\n const handleOnConfirm = (selectedValue) => {\n if (selectedValue) {\n onConfirm(selectedValue);\n } else {\n updateInputValue(value);\n }\n };\n\n return (\n <div style={{ position: \"relative\", width: \"100%\" }}>\n <Autocomplete\n ref={inputRef}\n {...autocompleteProps}\n defaultValue={defaultValue}\n onConfirm={handleOnConfirm}\n source={handleSource}\n />\n\n {Boolean(value && value.length > 0 && !disabled) && (\n <button\n onClick={handleClear}\n style={{\n position: \"absolute\",\n right: \"0px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n background: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n padding: 0,\n }}\n aria-label={tClearInput()}\n >\n <Icon icon=\"it-close\" size=\"sm\" title={tClearInput()} />\n </button>\n )}\n </div>\n );\n};\n\nexport default AccessibleAutocomplete;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcY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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC\"","import React, { useEffect, useRef, useState } from \"react\";\n//import \"leaflet/dist/leaflet.css\";\nimport Leaflet from \"leaflet\";\nimport L from \"leaflet\";\nimport { geoJSON, tileLayer } from \"leaflet\";\nimport iconRetinaUrl from \"leaflet/dist/images/marker-icon-2x.png\";\nimport iconUrl from \"leaflet/dist/images/marker-icon.png\";\nimport shadowUrl from \"leaflet/dist/images/marker-shadow.png\";\n\nconst Map = ({ position, areasLayer, bounds, onMarkedMoved }) => {\n const mapRef = useRef(null);\n let marker = null;\n const [polygon, setPolygon] = useState([]);\n const streetMaps = tileLayer(\n \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\n {\n // detectRetina: true,\n attribution:\n '© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a>',\n },\n );\n const defaultPosition = [41.9, 12.5];\n\n const initMap = () => {\n const map = Leaflet.map(mapRef.current, {\n keyboard: false,\n minZoom: 6,\n maxZoom: 17,\n }).setView(defaultPosition, 10);\n // map.scrollWheelZoom.disable()\n streetMaps.addTo(map);\n\n areasLayer &&\n areasLayer.map((layer) => {\n layer.addTo(map);\n });\n const centerMarker = position\n ? [`${position.lat}`, `${position.lon}`]\n : bounds\n ? bounds.getCenter()\n : defaultPosition;\ndelete L.Icon.Default.prototype._getIconUrl;\nL.Icon.Default.mergeOptions({\n iconRetinaUrl,\n iconUrl,\n shadowUrl\n});\n marker = L.marker(centerMarker, { draggable: true }).addTo(map);\n\n marker.on(\"moveend\", function (event) {\n const position = event.target.getLatLng();\n onMarkedMoved(position, marker);\n });\n if (!position && bounds) {\n map.fitBounds(bounds);\n } else {\n const newLatLng = position\n ? [position.lat, position.lon]\n : defaultPosition;\n if (marker) {\n marker.setLatLng(newLatLng).update();\n map.setView(newLatLng, 15);\n }\n }\n };\n\n useEffect(() => {\n if (mapRef.current) {\n initMap();\n }\n }, [mapRef]);\n return (\n <div\n className=\"d-block\"\n style={{ height: \"60vh\", width: \"100%\", display: \"block\" }}\n >\n <div\n ref={mapRef}\n style={{ height: \"100%\", width: \"100%\" }}\n aria-hidden={true}\n />\n </div>\n );\n};\nexport default Map;\n","import editForm from \"./AddressMap.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { ReactComponent } from \"@formio/react\";\nimport { createRoot } from \"react-dom/client\";\nimport {\n Button,\n Icon,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n Progress,\n} from \"design-react-kit\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport AccessibleAutocomplete from \"../../components/AccessibleAutocomplete\";\nimport L from \"leaflet\";\nimport _, { debounce } from \"lodash\";\nimport Map from \"./Map\";\nimport Swal from \"sweetalert2\";\nimport { locationNameFormatter } from \"../../_helpers/utilities\";\n\nexport const ReactAddressMap = ({\n component,\n value,\n current,\n onChange,\n i18next,\n}) => {\n const [position, setPosition] = useState(null);\n const [optionSuggestions, setOptionSuggestions] = useState([]);\n const [boundingBox, setBoundingBox] = useState();\n const [areasLayer, setAreasLayer] = useState();\n // const [geographicAreas, setGeographicAreas] = useState();\n const [chechingMarkerPosition, setChechingMarkerPosition] = useState(false);\n const [geographicAreasIds, setGeographicAreasIds] = useState();\n const [loadingSuggestions, setLoadingSuggestions] = useState(false);\n const [allBounds, setAllBounds] = useState();\n const [modalMarkerPosition, setModalMarkerPosition] = useState();\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n const [autocompleteValue, setAutocompleteValue] = useState(\"\");\n\n\n //Modal messages state\n const [message, setMessage] = useState('');\n const [isOpenModalMessages, setModalMessages] = useState(false);\n const [isOpen, toggleModal] = useState(false);\n\n const queryParams = new URLSearchParams(window.location.search);\n const areaIdParam = queryParams.get(\"area\");\n const { geographic_areas_id } = window.OC_SERVICE_DETAILS;\n\n const lastQuery = useRef();\n const language = i18next.language;\n let all_bounds = L.latLngBounds();\n\n //use areaId to filter geographicAreas by id\n const areaId = areaIdParam\n ? areaIdParam\n : geographic_areas_id && geographic_areas_id.length > 0\n ? geographic_areas_id\n : undefined;\n\n const fetchLocations = (query, populateResults) => {\n lastQuery.current = query;\n const apiUrl = `https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(query)}&countrycodes=it&viewbox=${boundingBox}&bounded=1&addressdetails=1&limit=14&format=jsonv2&accept-language=${language}`;\n let currentSuggestions = [];\n let currentSuggestionsLabel = [];\n setLoadingSuggestions(true);\n fetch(apiUrl)\n .then((response) => response.json())\n .then((data) => {\n if (data.length && lastQuery.current === query) {\n setLoadingSuggestions(true);\n const fetchPromises = data.map((location, index) => {\n const { lat, lon } = location;\n const url = `${baseUrl()}/api/geographic-areas/contains?lat=${lat}&lon=${lon}&geographic_areas_ids=${geographicAreasIds.join(\",\")}`;\n return fetch(url)\n .then((areaResponse) => areaResponse.json())\n .then((areaData) => {\n if (areaData.result) {\n location.label = locationNameFormatter(location);\n return location; // Return the location object\n }\n return null; // Return null if the geographic check fails\n });\n });\n // Wait for all promises to resolve\n return Promise.all(fetchPromises);\n } else {\n // Handle no results from the initial API call\n if (lastQuery.current === query) {\n populateResults([]);\n setLoadingSuggestions(false);\n }\n }\n })\n .then((validLocations) => {\n validLocations = validLocations\n ? validLocations.filter((location) => location !== null)\n : [];\n if (validLocations.length > 0) {\n validLocations.forEach((location, index) => {\n validLocations[index].label = locationNameFormatter(location);\n });\n validLocations = _.uniqWith(\n validLocations,\n (a, c) => a.label === c.label,\n );\n validLocations.forEach((location, index) => {\n currentSuggestionsLabel.push(location.label);\n currentSuggestions.push(location);\n });\n if (lastQuery.current === query) {\n populateResults(currentSuggestionsLabel);\n setOptionSuggestions(currentSuggestions);\n setLoadingSuggestions(false);\n }\n } else {\n if (lastQuery.current === query) {\n populateResults([]);\n setLoadingSuggestions(false);\n }\n }\n })\n .catch((error) => {\n console.error(\"Error fetching locations:\", error);\n setLoadingSuggestions(false);\n });\n };\n const suggest = (query, populateResults) => {\n fetchLocations(query, populateResults);\n };\n\n const fetchReverseGeocoding = (position, marker) => {\n const { lat, lng } = position;\n const url = `https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${lat}&lon=${lng}&accept-language=${language}`;\n fetch(url)\n .then((response) => response.json())\n .then((data) => {\n if (data && data.display_name) {\n data.label = locationNameFormatter(data);\n data.lat = lat;\n data.lon = lng;\n if(!marker){\n setModalMarkerPosition(data);\n return\n }else{\n marker.bindPopup(`${data.label}`).openPopup();\n setModalMarkerPosition(data);\n }\n\n }\n })\n .catch((error) => console.error(\"Error with reverse geocoding:\", error));\n };\n\n function getLocation() {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n let lat = position.coords.latitude;\n let lon = position.coords.longitude;\n const geographic_areas_ids = geographicAreasIds || [];\n\n if (geographic_areas_ids.length > 0) {\n const url = `${baseUrl()}/api/geographic-areas/contains?lat=${lat}&lon=${lon}&geographic_areas_ids=${geographicAreasIds.join(\",\")}`;\n fetch(url)\n .then((response) => response.json())\n .then((data) => {\n if (!data.result) {\n //setModalMessages(!isOpenModalMessages);\n //setMessage(i18next.t('error_message_position'));\n toggleModal(!isOpen)\n } else { \n setPosition({ lat: lat, lon: lon });\n fetchReverseGeocoding({ lat: lat, lng: lon });\n toggleModal(!isOpen)\n }\n })\n } else {\n setPosition({ lat: lat, lon: lon });\n fetchReverseGeocoding({ lat: lat, lng: lon });\n toggleModal(!isOpen)\n }\n },\n (errors) => {\n if (errors?.code === 1) {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_code_1'));\n } else if (errors?.code === 2) {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_code_2'));\n } else if (errors?.code === 3) {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_code_3'));\n } else {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_generic'));\n }\n }\n );\n }\n\n useEffect(() => {\n if (value) {\n setPosition(value);\n }\n if (current.valuePosition) {\n setPosition(current.valuePosition);\n }\n }, [value, current]);\n\n const saveRenderData = () => {\n if (value) {\n setPosition(value);\n }\n if (current.valuePosition) {\n setPosition(current.valuePosition);\n }\n };\n\n useEffect(() => {\n window?.Formio?.formioReady.then(() => {\n setTimeout(() => {\n //console.log(component, current);\n saveRenderData();\n initComponent();\n }, 1);\n });\n }, []);\n\n const initComponent = () => {\n let baseUrlApi = baseUrl();\n let urlGeographicAreas = `${baseUrlApi}/api/geographic-areas`;\n let geographic_areas_ids = [];\n let geographic_areas = [];\n let areas_layer = [];\n fetch(urlGeographicAreas)\n .then((response) => response.json())\n .then((data) => {\n if (Array.isArray(data) && data.length > 0) {\n data\n .filter((area) =>\n areaId\n ? Array.isArray(areaId)\n ? areaId.includes(area.id)\n : area.id === areaId\n : true,\n )\n .forEach((geo) => {\n geographic_areas_ids.push(geo.id);\n const geofence = JSON.parse(geo.geofence);\n geographic_areas.push(geofence);\n const geoJsonLayer = L.geoJSON(geofence, {\n style: {\n color: \"#3478bd\",\n fillColor: \"#87CEEB\",\n fillOpacity: 0.2,\n weight: 1.5,\n },\n filter: function (feature) {\n return (\n feature.geometry.type === \"Polygon\" ||\n feature.geometry.type === \"MultiPolygon\"\n );\n },\n });\n all_bounds.extend(geoJsonLayer.getBounds());\n areas_layer.push(geoJsonLayer);\n });\n setAreasLayer(areas_layer);\n // setGeographicAreas(geographic_areas)\n setGeographicAreasIds(geographic_areas_ids);\n setAllBounds(all_bounds);\n const bbNE = all_bounds.getNorthEast();\n const bbSW = all_bounds.getSouthWest();\n\n setBoundingBox([bbNE.lng, bbNE.lat, bbSW.lng, bbSW.lat]);\n } else {\n console.log(\"No geographic_areas_ids found.\");\n }\n })\n .catch((error) => {\n console.error(\"Error with reverse geocoding:\", error);\n });\n };\n\n const updateAutocompleteValue = () => {\n setAutocompleteValue(position?.label ? position.label : \"\");\n };\n\n useEffect(() => {\n updateAutocompleteValue();\n onChange(position);\n }, [position]);\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n } else {\n setRenderDataReadOnly(false);\n }\n }, []);\n\n const onSaveMapLocation = () => {\n if (modalMarkerPosition) {\n const url = `${baseUrl()}/api/geographic-areas/contains?lat=${modalMarkerPosition.lat}&lon=${modalMarkerPosition.lon}&geographic_areas_ids=${geographicAreasIds.join(\",\")}`;\n setChechingMarkerPosition(true);\n fetch(url)\n .then((response) => response.json())\n .then((data) => {\n setChechingMarkerPosition(false);\n if (data) {\n if (data.result === false) {\n Swal.fire({\n title: \"\",\n html:\n \"<p>\" +\n i18next.t(\n \"Attenzione: Il luogo selezionato si trova al di fuori dell’area coperta dal servizio. Per favore, scegli un luogo all'interno dell'area evidenziata nella mappa.\",\n ) +\n \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else if (data.result === true) {\n toggleModal(!isOpen);\n setPosition(modalMarkerPosition);\n }\n } else {\n setChechingMarkerPosition(false);\n console.log(\"No geographic-areas/contains .\");\n }\n })\n .catch((error) => {\n console.error(\"Error with geographic-areas/contains:\", error);\n Swal.fire({\n title: \"\",\n html: \"<p>\" + error + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n }\n };\n\n return (\n <div>\n <div\n id={`address-map-container-${component.key}`}\n className=\"address-map-container\"\n >\n <div>\n <Modal\n wrapClassName={\"formio-component-address_map\"}\n isOpen={isOpen}\n size={\"lg\"}\n scrollable\n toggle={() => toggleModal(!isOpen)}\n labelledBy=\"esempio2\"\n container={document.body}\n >\n <ModalHeader toggle={() => toggleModal(!isOpen)} id=\"esempio2\">\n {i18next.t(\"Individua il luogo sulla mappa\")}\n </ModalHeader>\n <ModalBody>\n <p>\n <small>\n {i18next.t(\n \"Trascina l’icona nel punto preciso in cui si verifica l’evento che vuoi segnalare e fai click su Salva indirizzo\",\n )}\n </small>\n </p>\n <Map\n position={position}\n areasLayer={areasLayer}\n bounds={allBounds}\n onMarkedMoved={(position, marker) => {\n fetchReverseGeocoding(position, marker);\n }}\n />\n </ModalBody>\n <ModalFooter>\n <Button color=\"secondary\" onClick={() => toggleModal(!isOpen)}>\n {i18next.t(\"Chiudi\")}\n </Button>\n <Button\n color=\"primary\"\n onClick={() => {\n onSaveMapLocation();\n }}\n disabled={!modalMarkerPosition || chechingMarkerPosition}\n >\n {i18next.t(\"Salva indirizzo\")}\n </Button>\n </ModalFooter>\n </Modal>\n </div>\n <div>\n <Modal\n isOpen={isOpenModalMessages}\n toggle={() => setModalMessages(!isOpenModalMessages)}\n withIcon\n labelledBy=\"error-modal-message\"\n container={document.body}\n >\n <ModalHeader icon=\"it-info-circle\" id=\"error-modal-message\">\n {i18next.t('warning')}\n </ModalHeader>\n <ModalBody>\n <p>{message}</p>\n </ModalBody>\n <ModalFooter>\n <Button color=\"primary\" onClick={() => setModalMessages(!isOpenModalMessages)}>\n {i18next.t('close')}\n </Button>\n </ModalFooter>\n </Modal>\n </div>\n <div className=\"position-relative\">\n <AccessibleAutocomplete\n id={`${component.id}-${component.key}`}\n inputClasses=\"form-control\"\n source={debounce(suggest, 520)}\n onConfirm={(value) => {\n setLoadingSuggestions(false);\n lastQuery.current = \"\";\n if (value) {\n if (value === \"\") {\n setPosition(null);\n }\n let pos = optionSuggestions.find(\n (item) => item.label === value,\n );\n setPosition(pos);\n }\n }}\n onClear={() => {\n setLoadingSuggestions(false);\n lastQuery.current = \"\";\n setPosition(null);\n }}\n dropdownArrow={() => null}\n minLength={3}\n disabled={renderDataReadOnly}\n confirmOnBlur={true}\n showNoOptionsFound={!loadingSuggestions}\n defaultValue={position?.label}\n value={autocompleteValue}\n tNoResults={() =>\n i18next.t(\n \"Nessun risultato trovato, prova a inserire l'indirizzo completo\",\n )\n }\n tClearInput={() => i18next.t(\"Clear input\")}\n />\n {loadingSuggestions && (\n <div\n className=\"position-absolute\"\n style={{\n width: \"100%\",\n bottom: \"0px\",\n }}\n >\n <Progress indeterminate label=\"In elaborazione...\" />\n </div>\n )}\n </div>\n {!renderDataReadOnly && (\n <Button\n // tag=\"input\"\n type=\"button\"\n value={i18next.t(\"Individua con precisione sulla mappa\")}\n onClick={() => {\n if (/Mobi|Android/i.test(navigator.userAgent)) {\n getLocation();\n }else{\n toggleModal(true);\n setModalMarkerPosition(false);\n }\n\n }}\n icon\n className=\"px-0 primary-color\"\n >\n <Icon color=\"primary\" icon=\"it-map-marker-circle\" role={'presentation'}/>\n <span>{i18next.t(\"Individua con precisione sulla mappa\")}</span>\n </Button>\n )}\n </div>\n </div>\n );\n};\n\nexport default class FormioAddressMap extends ReactComponent {\n constructor(component, options, data) {\n super(component, options, data);\n }\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Address Map\",\n group: \"basic\",\n icon: \"fa fa-map-location-dot\",\n documentation: \"\",\n weight: 70,\n schema: FormioAddressMap.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return ReactComponent.schema({\n type: \"address_map\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attachReact(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactAddressMap\n ref={ref}\n key={this.dataValue}\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />,\n );\n }\n\n setValue(value) {\n this.valuePosition = value;\n this.updateValue(value);\n\n }\n\n getValue() {\n return this.valuePosition;\n return super.getValue();\n // return super.getValue();\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(\n `<div id=\"react-${this.id} ref=\"react-${this.id}\"></div>`,\n );\n }\n}\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n }\n];\n","import { Components } from \"@formio/react\";\nimport ListServicesEdit from \"./ListServices.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: ListServicesEdit,\n },\n ],\n ...extend,\n );\n}\n","import editForm from \"./ListServices.form\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport { Container, Row, Col, Input } from \"design-react-kit\";\nimport { addParamToUrl } from \"../../functions/utils\";\nimport DOMPurify from \"dompurify\";\nimport { clearCalendarViewState } from \"../CalendarAdvanced/calendarUtility\";\n\nconst InputFormIO = Formio.Components.components.input;\n\nexport const ReactListServices = ({ component, current, onChange, i18next }) => {\n const CACHE_KEY = \"list-services\";\n const CACHE_SELECTED_CATEGORY = \"selected-category\";\n\n const [data, setData] = useState([]);\n const [dataFiltered, setDataFiltered] = useState([]);\n const [selectedCategoryName, setSelectedCategoryName] = useState(null); // ✅ categoria per chiave stabile\n const [selectedService, setSelectedService] = useState(null);\n const [searchQuery, setSearchQuery] = useState(\"\"); // ✅ search controllata\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const didFetch = useRef(false);\n const componentRef = useRef();\n\n // ✅ Categoria selezionata derivata (prima da dataFiltered, poi da data)\n const selectedCategory = useMemo(() => {\n if (!selectedCategoryName) return null;\n\n const fromFiltered = dataFiltered.find((c) => c.name === selectedCategoryName);\n if (fromFiltered) return fromFiltered;\n\n const fromAll = data.find((c) => c.name === selectedCategoryName);\n return fromAll || null;\n }, [selectedCategoryName, dataFiltered, data]);\n\n // ✅ Servizi della categoria selezionata\n const filteredServices = useMemo(() => {\n return selectedCategory?.services || [];\n }, [selectedCategory]);\n\n // 🔹 Caricamento iniziale (cache o API)\n const loadData = async () => {\n setLoading(true);\n\n const cachedData = sessionStorage.getItem(CACHE_KEY);\n const cachedCategoryName = sessionStorage.getItem(CACHE_SELECTED_CATEGORY);\n\n if (cachedData) {\n try {\n const parsed = JSON.parse(cachedData);\n if (Array.isArray(parsed) && parsed.length > 0) {\n setData(parsed);\n setDataFiltered(parsed);\n\n const foundCategory =\n parsed.find((cat) => cat.name === cachedCategoryName) || parsed[0];\n\n setSelectedCategoryName(foundCategory?.name || null);\n setLoading(false);\n return parsed;\n }\n } catch (err) {\n console.warn(\"⚠️ Cache corrotta, rigenerazione...\");\n }\n }\n\n const response = await window.FormioHelper.getBookingConfig();\n\n const organized = {};\n response.forEach((item) => {\n (item.categories ?? []).forEach((cat) => {\n if (!organized[cat]) organized[cat] = { name: cat, services: [] };\n organized[cat].services.push(item);\n });\n });\n\n const organizedSorted = Object.fromEntries(\n Object.entries(organized).sort(([a], [b]) =>\n a.localeCompare(b, \"it\", { sensitivity: \"base\" })\n )\n );\n\n const categoriesArray = Object.values(organizedSorted).filter(\n (cat) => (cat.name ?? \"\").trim() !== \"\"\n );\n\n setData(categoriesArray);\n setDataFiltered(categoriesArray);\n\n setSelectedCategoryName(categoriesArray[0]?.name || null);\n\n sessionStorage.setItem(CACHE_KEY, JSON.stringify(categoriesArray));\n sessionStorage.setItem(CACHE_SELECTED_CATEGORY, categoriesArray[0]?.name || \"\");\n\n setLoading(false);\n return categoriesArray;\n };\n\n // 🔹 Mantiene aggiornata la categoria selezionata nella cache\n useEffect(() => {\n if (selectedCategoryName) {\n sessionStorage.setItem(CACHE_SELECTED_CATEGORY, selectedCategoryName);\n }\n }, [selectedCategoryName]);\n\n // 🔹 Caricamento solo una volta\n useEffect(() => {\n if (didFetch.current) return;\n didFetch.current = true;\n loadData();\n }, []);\n\n // 🔹 Funzione di ricerca (controllata)\n const searchResults = (e) => {\n const escapeRegExp = (s = \"\") => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n const normalize = (s = \"\") =>\n s\n .toLowerCase()\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .replace(/\\s+/g, \" \")\n .trim();\n\n const stripHtml = (html = \"\") => html.replace(/<[^>]*>/g, \" \");\n\n const startsWord = (text, token) =>\n new RegExp(`\\\\b${escapeRegExp(token)}`, \"i\").test(text);\n\n const scoreService = (service, tokens) => {\n const name = normalize(service.name);\n const cats = normalize((service.categories ?? []).join(\" \"));\n const abs = normalize(stripHtml(service.abstract ?? \"\"));\n\n const ok = tokens.every(\n (t) => startsWord(name, t) || startsWord(cats, t) || startsWord(abs, t)\n );\n if (!ok) return -1;\n\n let score = 0;\n for (const t of tokens) {\n if (startsWord(name, t)) score += 3;\n else if (startsWord(cats, t)) score += 2;\n else if (startsWord(abs, t)) score += 1;\n }\n return score;\n };\n\n const value = e.target.value;\n setSearchQuery(value);\n\n const q = normalize(value);\n if (!q) {\n setDataFiltered(data);\n setSelectedCategoryName((prev) => prev ?? data[0]?.name ?? null);\n return;\n }\n\n const tokens = q.split(\" \").filter(Boolean);\n\n const filtered = data\n .map((category) => {\n const servicesScored = category.services\n .map((service) => ({ service, score: scoreService(service, tokens) }))\n .filter((x) => x.score >= 0)\n .sort((a, b) => b.score - a.score)\n .map((x) => x.service);\n\n return servicesScored.length ? { ...category, services: servicesScored } : null;\n })\n .filter(Boolean);\n\n setDataFiltered(filtered);\n\n // se la categoria corrente è ancora presente, tienila; altrimenti la prima disponibile\n const stillThere = filtered.some((c) => c.name === selectedCategoryName);\n setSelectedCategoryName(stillThere ? selectedCategoryName : filtered[0]?.name ?? null);\n };\n\n // ✅ PATCH 1: selezione servizio senza resettare filtro/ricerca\n const handleSelectService = (service) => {\n setSelectedService(service);\n\n // ❌ NON resettare più:\n // setSearchQuery(\"\");\n // setDataFiltered(data);\n\n // ✅ allinea la categoria al servizio selezionato (su data completa)\n const categoryWithService = data.find((cat) =>\n cat.services.some((svc) => svc.id === service.id)\n );\n if (categoryWithService) {\n setSelectedCategoryName(categoryWithService.name);\n }\n\n //addParamToUrl(\"service_id\", service.id);\n\n onChange({\n id: service.id,\n link: service.link,\n name: service.name,\n show_howto_in_motivation: service.show_howto_in_motivation,\n categories: service.categories,\n offices: service.offices,\n abstract: service.abstract,\n view_type: service.view_type,\n });\n\n current.data.user_group = null;\n clearCalendarViewState();\n };\n\n // 🔹 Gestione clic su categoria\n const handleCategoryClick = (category) => {\n setSelectedCategoryName(category.name);\n setSelectedService(null);\n\n //addParamToUrl(\"service_id\", null);\n\n // qui ha senso: cambio categoria => esco dal filtro e svuoto la ricerca\n setSearchQuery(\"\");\n setDataFiltered(data);\n\n onChange({});\n };\n\n // 🔹 Gestione modalità sola lettura\n useEffect(() => {\n const isReadOnly = !!document.querySelector(\".formio-read-only\");\n setRenderDataReadOnly(isReadOnly);\n }, []);\n\n // ✅ SINCRONIZZA SELECTEDSERVICE CON IL VALORE SALVATO (da Formio)\n useEffect(() => {\n const t = setTimeout(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (savedValue?.id) {\n setSelectedService(savedValue);\n //addParamToUrl(\"service_id\", savedValue.id);\n\n // ❌ NON resettare filtro/ricerca qui (altrimenti al click ti ripristina tutto)\n\n if (data.length > 0) {\n const categoryWithService = data.find((cat) =>\n cat.services.some((svc) => svc.id === savedValue.id)\n );\n if (categoryWithService) {\n setSelectedCategoryName(categoryWithService.name);\n }\n }\n }\n }, 500);\n\n return () => clearTimeout(t);\n }, [current?.dataValue, current?.data, data]);\n\n // ✅ EVENT LISTENER SU FORMIO CHANGE (fallback)\n useEffect(() => {\n const inst = window.FormioInstance;\n if (!inst) return;\n\n const handleFormioChange = () => {\n const savedValue = inst.submission?.data?.[current?.component?.key];\n if (savedValue?.id) {\n setSelectedService(savedValue);\n //addParamToUrl(\"service_id\", savedValue.id);\n\n // ❌ NON resettare filtro/ricerca qui (altrimenti al click ti ripristina tutto)\n\n if (data.length > 0) {\n const categoryWithService = data.find((cat) =>\n cat.services.some((svc) => svc.id === savedValue.id)\n );\n if (categoryWithService) {\n setSelectedCategoryName(categoryWithService.name);\n }\n }\n }\n };\n\n inst.on(\"change\", handleFormioChange);\n return () => inst.off(\"change\", handleFormioChange);\n }, [data, current?.component?.key]);\n\n if (loading) {\n return (\n <div className=\"services-booking\" ref={componentRef}>\n <div>{i18next.t(\"Caricamento in corso\")}...</div>\n </div>\n );\n }\n\n return (\n <div className=\"services-booking\" ref={componentRef}>\n {data && !renderDataReadOnly ? (\n <Container>\n {/* HEADER */}\n <Row className=\"mb-3\">\n <Col>\n <h3 className=\"h6 fw-bold text-uppercase mb-3\">\n {i18next.t(\"Seleziona il servizio per cui stai richiedendo un appuntamento\")}\n </h3>\n </Col>\n </Row>\n\n {/* SEARCH BAR */}\n <Row className=\"mb-3\">\n <Col>\n <div className=\"search-container\">\n <Input\n id=\"search\"\n label={i18next.t(\"Cerca\")}\n type=\"text\"\n value={searchQuery}\n onChange={searchResults}\n onInput={searchResults}\n infoText={i18next.t(\"Cerca per categoria, servizio o descrizione\")}\n />\n </div>\n </Col>\n </Row>\n\n {/* MAIN LAYOUT: CATEGORIES + SERVICES */}\n <Row className=\"mb-3\">\n {/* LEFT SIDEBAR - CATEGORIES */}\n {selectedCategory ? (\n <Col lg={3} md={4} className=\"mb-4 mb-lg-0\">\n <div className=\"categories-list\">\n <h3 className=\"h6 fw-bold text-uppercase mb-3\">\n {i18next.t(\"Categorie\")}\n </h3>\n\n {dataFiltered.length > 0 &&\n dataFiltered.map((category) => {\n const isActive = selectedCategoryName === category.name;\n return (\n <button\n key={category.name}\n onClick={() => handleCategoryClick(category)}\n className={`category-item w-100 text-start p-3 mb-2 border-0 rounded ${\n isActive\n ? \"category-active bg-primary text-white\"\n : \"bg-light text-dark\"\n }`}\n >\n <span className=\"fw-500 d-block\">{category.name}</span>\n <small className={`d-block mt-1 ${isActive ? \"text-white\" : \"text-muted\"}`}>\n {category.services.length}{\" \"}\n {category.services.length > 1\n ? i18next.t(\"servizi\")\n : i18next.t(\"servizio\")}\n </small>\n </button>\n );\n })}\n </div>\n </Col>\n ) : null}\n\n {/* RIGHT CONTENT - SERVICES */}\n <Col lg={selectedCategory ? 9 : 12} md={selectedCategory ? 8 : 12}>\n <div className=\"services-container\">\n {filteredServices.length > 0 ? (\n <div className=\"services-header mb-4\">\n <h3 className=\"h5 fw-bold text-primary mb-0\">\n {selectedCategory?.name}\n </h3>\n <div className=\"border-bottom border-primary mt-3 mb-4\" />\n </div>\n ) : null}\n\n {filteredServices.length > 0 ? (\n <div className=\"services-list\">\n {filteredServices.map((service) => {\n const isSelected = selectedService?.id === service.id;\n const safeHtml = DOMPurify.sanitize(service?.abstract);\n\n return (\n <button\n key={service.id}\n onClick={() => handleSelectService(service)}\n className={`service-card mb-4 p-4 rounded border cursor-pointer transition text-start w-100 ${\n isSelected\n ? \"border-primary border-2 bg-light\"\n : \"border-light border-1 bg-white\"\n }`}\n style={{ cursor: \"pointer\" }}\n tabindex=\"0\"\n role=\"button\"\n aria-label={`${service.name}`}\n aria-pressed={isSelected}\n >\n <div className=\"d-flex justify-content-between align-items-start\">\n <div className=\"flex-grow-1\">\n <h5 className=\"h6 fw-bold mb-2 text-dark\">\n {service.name}\n </h5>\n {service?.abstract && (\n <p\n className=\"text-muted small mb-0\"\n dangerouslySetInnerHTML={{ __html: safeHtml }}\n />\n )}\n </div>\n </div>\n </button>\n );\n })}\n </div>\n ) : (\n <div className=\"alert alert-info text-italic\">\n {i18next.t(\n \"Il servizio che stai cercando non è disponibile per la prenotazione appuntamento\"\n )}\n </div>\n )}\n </div>\n </Col>\n </Row>\n </Container>\n ) : renderDataReadOnly ? (\n <fieldset className=\"it-page-section\">\n <div className=\"cmp-card mt-2\">\n <div className=\"card has-bkg-grey shadow-sm p-big\">\n <div className=\"card-header border-0 p-0 mb-lg-30\">\n <div className=\"d-flex\">\n <h2 className=\"title-xxlarge mb-1\">{selectedCategory?.name}</h2>\n </div>\n </div>\n <div className=\"card p-3 p-lg-4 fieldset-body\">\n {current?.dataValue?.id ? (\n <div className=\"services-list\">\n <div\n key={current.dataValue.id}\n className=\"service-card p-4 rounded border transition border-light border-1 bg-white\"\n >\n <div className=\"d-flex justify-content-between align-items-start\">\n <div className=\"flex-grow-1\">\n <p className=\"mb-2 text-dark text-paragraph\">\n {current.dataValue.name}\n </p>\n </div>\n </div>\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n </fieldset>\n ) : null}\n </div>\n );\n};\n\nexport default class FormioListServices extends InputFormIO {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n static get builderInfo() {\n return {\n title: \"Lista Servizi\",\n group: \"basic\",\n icon: \"bi bi-list\",\n documentation: \"\",\n weight: 70,\n schema: FormioListServices.schema(),\n };\n }\n\n static schema() {\n return InputFormIO.schema({\n type: \"list-services\",\n });\n }\n\n static editForm = editForm;\n\n attach(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactListServices\n ref={ref}\n component={this.component}\n onChange={(e) => this.setValue(e)}\n {...this}\n current={this}\n />\n );\n }\n\n setValue(value) {\n if (!value) return;\n this.shouldSetValue = true;\n this.updateValue(value);\n }\n\n getValue() {\n return this.dataValue;\n }\n\n init() {\n super.init();\n }\n\n render() {\n return super.render();\n }\n}\n","import FormioPageBreak from \"./customComponentFormio/PageBreak/PageBreak\";\nimport FormioDynamicCalendar from \"./customComponentFormio/DynamicCalendar/DynamicCalendar\";\nimport Calendar from \"./customComponentFormio/Calendar/Calendar\";\nimport CalendarAdvanced from \"./customComponentFormio/CalendarAdvanced/CalendarAdvanced\";\nimport SdcFile from \"./customComponentFormio/FileSdc/SdcFileReact\";\nimport FormioAddressMap from \"./customComponentFormio/AddressMap/AddressMap\";\nimport FormioListServices from \"./customComponentFormio/ListServices/ListServices\";\n\nexport {\n FormioPageBreak,\n FormioDynamicCalendar,\n Calendar,\n CalendarAdvanced,\n SdcFile,\n FormioAddressMap,\n FormioListServices,\n};\n\nexport const formioCustomComponents = {\n pagebreak: FormioPageBreak,\n dynamic_calendar: FormioDynamicCalendar,\n calendar: Calendar,\n \"calendar-advanced\": CalendarAdvanced,\n sdcfile: SdcFile,\n address_map: FormioAddressMap,\n \"list-services\": FormioListServices,\n};\n\nexport function registerFormioComponents(Components) {\n if (!Components || typeof Components.addComponent !== \"function\") {\n throw new Error(\n \"registerFormioComponents requires Formio Components with addComponent(name, component)\",\n );\n }\n\n Object.entries(formioCustomComponents).forEach(([name, component]) => {\n Components.addComponent(name, component);\n });\n\n return formioCustomComponents;\n}\n"],"names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","ReactPageBreak","r","useRef","FormioPageBreak","ReactComponent","component","options","data","createRoot","baseUrl","globalRegex","url","explodedPath","DynamicCalendarEdit$1","editForm$5","extend","Components","DynamicCalendarEdit","buildFormatLongFn","width","buildLocalizeFn","valuesArray","defaultWidth","index","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","findIndex","pattern","findKey","rest","predicate","array","buildMatchPatternFn","parseResult","constructFromSymbol","constructFrom","date","normalizeDates","dates","normalize","defaultOptions","getDefaultOptions","toDate","argument","startOfWeek","weekStartsOn","_date","day","diff","isSameWeek","laterDate","earlierDate","laterDate_","earlierDate_","formatDistanceLocale","formatDistance","token","count","result","tokenValue","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","eraValues","quarterValues","monthValues","formattingMonthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","localize","quarter","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","de","number","rem100","enGB","weekdays","lastWeek","thisWeek","nextWeek","baseDate","it","global","factory","module","this","hookCallback","hooks","setHookCallback","callback","input","isObject","hasOwnProp","isObjectEmpty","obj","isUndefined","isNumber","isDate","map","arr","res","arrLen","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","some","fun","len","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","Moment","isMoment","warn","msg","deprecate","firstTime","arg","argLen","deprecations","deprecateSimple","isFunction","set","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","calendar","mom","now","output","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","length","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","isFuture","pastFuture","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","u","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","y","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","get","isUTC","month","stringGet","stringSet","prioritized","prioritizedLen","mod","indexOf","o","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","M","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","require","getSetGlobalLocale","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","defaults","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","min","max","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add","subtract","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString","keepOffset","utc","inspect","zone","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","moment","enGb","processRelativeTime","convertTimeInInteger","concatString","convertIntegerToTime","locationNameFormatter","sessionGet","stringValue","sessionSet","expirationToken","expirationDate","newValue","DaySelected","slot","i18next","ReactDynamicCalendar","current","onChange","selected","setSelected","useState","disabledDates","setDisabledDates","daysSlot","setDaysSlot","noAvailableSlot","setNoAvailableSlot","draftMeeting","setDraftMeeting","slotSelected","setSlotSelected","selectedData","setSelectedData","activeSlot","setActiveSlot","firstAvailableSlot","setFirstAvailableSlot","renderData","setRenderData","isOpen","toggleModal","listMeeting","setListMeeting","renderDataReadOnly","setRenderDataReadOnly","refButtonSlot","calendarID","calculateAvailableDates","formattedDate","getMonthlyAvailabilitiesUrl","response","dateAvailables","getListDaysInMonth","elements","resetValue","el","firstDayAvailable","getDaysSlot","getDailyAvailabilitiesUrl","saveRenderData","parseListMeeting","explodedValue","explodedCalendar","useEffect","arrDays","available","selectOpeningHours","openingHours","queryParameters","onMonthChange","onDayClick","onClickSelectDate","createOrUpdateMeeting","valueSlot","dataMeet","draftMeet","updateMeeting","Swal","handleConfirmMeeting","Completionist","renderer","completed","handleFromTime","currentValue","valueMin","valueMax","setValueCalendar","handleToTime","valueMeetings","meeting","getCurrentLocale","removeItem","newArray","Fragment","DayPicker","Icon","Alert","Countdown","Modal","ModalHeader","ModalBody","dayjs","Input","ModalFooter","Button","FormioDynamicCalendar","editForm","meeting_id","opening_hour","editForm$4","CalendarAdvancedEdit","editForm$3","SlotSelected","adjustSlotHeight","events","durations","start","minDuration","avgDuration","dynamicHeight","CACHE_CONFIG","setCachedData","cacheKey","cacheData","getCachedData","cached","parsedCache","cacheAge","generateCacheKey","params","CALENDAR_VIEW_STATE_KEY","CALENDAR_VIEW_DATE_KEY","saveCalendarViewState","viewType","getCalendarViewState","clearCalendarViewState","Field","Formio","ReactCalendarAdvanced","availableDate","setAvailableDate","isLoading","setIsLoading","selectedBooking","setSelectedBooking","monthYearOptions","setMonthYearOptions","daysOptions","setDaysOptions","slotsOptions","setSlotsOptions","selectedMonth","setSelectedMonth","selectedDay","setSelectedDay","selectedSlot","setSelectedSlot","calendarRef","calendarEc","getTimeRange","availabilities","times","minStart","t","maxEnd","getHiddenDays","availableDays","missingDays","buildAvailabilityUrl","originalUrl","startDate","endDate","newPathname","buildAvailabilityUrlLongTerms","calculateAvailabilityLink","handleChangeMonthYear","handleChangeDay","cachedSlots","availabilitySlots","handleChangeSlot","meet","getMonthYearOptions","items","fetchAvailabilityEventsSelect","calendarRangeStart","calendarRangeEnd","calculatedUrl","cachedData","availabilityData","savedValue","monthKey","first","getResponsiveView","handleResize","newView","currentView","renderViewCalendar","viewState","createCalendar","TimeGrid","view","event","end","meetingData","handleViewChange","fetchAvailabilityEvents","successCallback","failureCallback","endWeek","timeRange","highlightSavedSlot","timerId","destroyed","initCalendar","saved","savedStart","savedEnd","eventToHighlight","ev","renderSummary","Select","option","Spinner","FormioCalendarAdvanced","FileEditData","FileEditDisplay","FileEditFile","FileEditValidation","editForm$2","isArray_1","freeGlobal","_freeGlobal","freeSelf","root","_root","Symbol","_Symbol","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","_getRawTag","objectToString","_objectToString","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","_isKey","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","_isMasked","funcProto","funcToString","toSource","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","_baseIsNative","getValue","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","_hashGet","hashHas","_hashHas","hashSet","_hashSet","require$$4","Hash","entries","entry","_Hash","listCacheClear","_listCacheClear","eq","eq_1","assocIndexOf","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","size","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","quote","subString","_stringToPath","arrayMap","iteratee","_arrayMap","symbolProto","symbolToString","baseToString","_baseToString","toString_1","castPath","_castPath","toKey","_toKey","baseGet","path","_baseGet","defaultValue","get_1","defineProperty","_defineProperty","baseAssignValue","_baseAssignValue","assignValue","objValue","_assignValue","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","baseSet","customizer","nested","_baseSet","set_1","Auth","axios","resolve","reject","decodedToken","jwtDecode","FileComponent","signatureCheckWsUrl","ReactSdcFile","uploadedFiles","setUploadedFiles","filesUploadingMap","setFilesUploadingMap","auth","addFilesUploading","id","file","prevMap","updatedMap","maxSizeValidator","translateScalars","validateTypeFile","accepted","acc","extension","mime","parsedFileInfo","fileUpload","fileInfo","getRootProps","getInputProps","fileRejections","isDragActive","open","useDropzone","acceptedFiles","uploadFile","removeFile","prevUploadedFiles","files","loadFiles","idUpload","respPost","progressEvent","percentCompleted","etag","resp","fileIndex","nextFiles","responseErr","str","formatBytes","bytes","decimals","dm","sizes","DOMPurify","Progress","errors","FormioSdcFile","reactRefName","mountNode","normalized","changed","rootPathValue","localValue","row","nextVisible","content","AddressMapEdit","editForm$1","v","O","S","E","I","C","_","A","P","R","T","D","N","F","L","B","V","U","K","H","W","z","Q","G","$","Y","X","J","Z","tt","et","react","AccessibleAutocomplete","onConfirm","disabled","onClear","tClearInput","autocompleteProps","inputRef","updateInputValue","handleClear","handleSource","query","populateResults","handleOnConfirm","selectedValue","Autocomplete","iconRetinaUrl","iconUrl","shadowUrl","position","areasLayer","bounds","onMarkedMoved","mapRef","marker","polygon","setPolygon","streetMaps","tileLayer","defaultPosition","initMap","Leaflet","layer","centerMarker","newLatLng","ReactAddressMap","setPosition","optionSuggestions","setOptionSuggestions","boundingBox","setBoundingBox","setAreasLayer","chechingMarkerPosition","setChechingMarkerPosition","geographicAreasIds","setGeographicAreasIds","loadingSuggestions","setLoadingSuggestions","allBounds","setAllBounds","modalMarkerPosition","setModalMarkerPosition","autocompleteValue","setAutocompleteValue","message","setMessage","isOpenModalMessages","setModalMessages","areaIdParam","geographic_areas_id","lastQuery","language","all_bounds","areaId","fetchLocations","apiUrl","currentSuggestions","currentSuggestionsLabel","fetchPromises","lat","lon","areaResponse","areaData","validLocations","suggest","fetchReverseGeocoding","lng","getLocation","initComponent","urlGeographicAreas","geographic_areas_ids","areas_layer","area","geo","geofence","geoJsonLayer","feature","bbNE","bbSW","updateAutocompleteValue","onSaveMapLocation","debounce","FormioAddressMap","ListServicesEdit","InputFormIO","ReactListServices","CACHE_KEY","CACHE_SELECTED_CATEGORY","setData","dataFiltered","setDataFiltered","selectedCategoryName","setSelectedCategoryName","selectedService","setSelectedService","searchQuery","setSearchQuery","loading","setLoading","didFetch","componentRef","selectedCategory","useMemo","fromFiltered","filteredServices","loadData","cachedCategoryName","parsed","foundCategory","cat","organized","organizedSorted","categoriesArray","searchResults","escapeRegExp","stripHtml","html","startsWord","text","scoreService","service","cats","score","prev","filtered","category","servicesScored","stillThere","handleSelectService","categoryWithService","svc","handleCategoryClick","isReadOnly","inst","handleFormioChange","Container","Row","Col","isActive","isSelected","safeHtml","FormioListServices","formioCustomComponents","Calendar","CalendarAdvanced","SdcFile","registerFormioComponents"],"mappings":"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AE,IAAK,cAAc,EAAI,IAAI,CAAC,CACpD,CACA,EACE,CACE,MAAO,mBACP,UAAW,GACX,IAAK,YACL,KAAM,YACN,MAAO,GACP,WAAY,CACV,CACE,MAAO,iBACP,YAAa,SACb,KAAM,GACN,UAAW,GACX,UAAW,GACX,eAAgB,GAChB,YAAa,QACb,uBAAwB,GACxB,SAAU,CACR,IAAK,EACL,IAAK,GACf,EACQ,IAAK,WACL,KAAM,SACN,MAAO,GACP,aAAc,GACtB,CACA,EACI,YAAa,CACX,KAAM,CAAE,MAAO,CAAC,CAAE,IAAK,yBAAyB,EAAI,EAAI,CAAC,CAC/D,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,oBACL,MAAO,WACP,OAAQ,GACR,YAAa,oCACb,YAAa,CACX,KAAM,CACJ,GAAI,CACF,CACE,IAAK,cACjB,EACU,CAAC,WAAW,CACtB,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,MAAO,QACP,IAAK,yBACL,OAAQ,GACR,YAAa,qCACb,YAAa,CACX,KAAM,CACJ,GAAI,CACF,CACE,IAAK,cACjB,EACU,CAAC,WAAW,CACtB,CACA,CACA,CACA,EACE,CACE,KAAM,WACN,IAAK,UACL,MAAO,yBACP,QAAS,yCACT,KAAM,EACN,OAAQ,MACR,MAAO,GACP,OAAQ,GACR,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA,OAMb,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,KACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,UACL,MAAO,qBACP,OAAQ,GACR,YAAa,8CACb,QACE,iFACF,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,KACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,MACL,MAAO,YACP,YAAa,6CACb,QACE,wEACF,OAAQ,GACR,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,aACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,MACL,MAAO,YACP,YAAa,qDACb,QACE,qEACF,OAAQ,GACR,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,aACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,mBACL,MAAO,qBACP,YAAa,oCACb,QACE,mRACF,OAAQ,EACZ,EACE,CACE,KAAM,WACN,MAAO,GACP,IAAK,QACL,MAAO,sBACP,QACE,0EACF,OAAQ,EACZ,EACE,CACE,KAAM,WACN,MAAO,GACP,IAAK,aACL,MAAO,cACP,QACE,qIACF,OAAQ,EACZ,EACE,CACE,KAAM,WACN,MAAO,GACP,IAAK,kBACL,MAAO,mBACP,QACE,uLACF,OAAQ,GACR,YAAa,CACX,KAAM,CAAE,MAAO,CAAC,CAAE,IAAK,cAAc,EAAI,KAAK,CAAC,CACrD,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,YACL,MAAO,aACP,YAAa,MACb,QAAS,wCACT,OAAQ,GACR,YAAa,CACX,KAAM,CAAE,KAAM,CAAC,CAAE,IAAK,YAAY,EAAI,EAAI,CAAC,CACjD,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,WACL,MAAO,yBACP,YAAa,MACb,QAAS,qDACT,OAAQ,EACZ,EACE,CACE,KAAM,WACN,MAAO,GACP,IAAK,SACL,MAAO,oBACP,QACE,6GACF,OAAQ,EACZ,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,aACL,MAAO,eACP,YAAa,MACb,QAAS,uCACT,OAAQ,GACR,YAAa,CACX,KAAM,CAAE,KAAM,CAAC,CAAE,IAAK,aAAa,EAAI,EAAI,CAAC,CAClD,CACA,EACE,CACE,KAAM,WACN,MAAO,GACP,MAAO,aACP,IAAK,YACL,QACE,sKACF,OAAQ,GACR,WAAY,CACV,CACE,MAAO,QACP,IAAK,QACL,MAAO,GACP,KAAM,WACd,EACM,CACE,MAAO,QACP,IAAK,QACL,MAAO,GACP,KAAM,WACd,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,cACL,MAAO,eACP,YAAa,+BAC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","x_google_ignoreList":[0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,121,122,124,125,126]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/customComponentFormio/PageBreak/PageBreak.jsx","../src/_helpers/BaseUrl.js","../src/customComponentFormio/DynamicCalendar/DynamicCalendar.edit.display.js","../src/customComponentFormio/DynamicCalendar/DynamicCalendar.form.js","../node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/date-fns/constants.js","../node_modules/date-fns/constructFrom.js","../node_modules/date-fns/_lib/normalizeDates.js","../node_modules/date-fns/_lib/defaultOptions.js","../node_modules/date-fns/toDate.js","../node_modules/date-fns/startOfWeek.js","../node_modules/date-fns/isSameWeek.js","../node_modules/date-fns/locale/de/_lib/formatDistance.js","../node_modules/date-fns/locale/de/_lib/formatLong.js","../node_modules/date-fns/locale/de/_lib/formatRelative.js","../node_modules/date-fns/locale/de/_lib/localize.js","../node_modules/date-fns/locale/de/_lib/match.js","../node_modules/date-fns/locale/de.js","../node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/date-fns/locale/en-GB/_lib/formatLong.js","../node_modules/date-fns/locale/en-GB.js","../node_modules/date-fns/locale/it/_lib/formatDistance.js","../node_modules/date-fns/locale/it/_lib/formatLong.js","../node_modules/date-fns/locale/it/_lib/formatRelative.js","../node_modules/date-fns/locale/it/_lib/localize.js","../node_modules/date-fns/locale/it/_lib/match.js","../node_modules/date-fns/locale/it.js","../node_modules/moment/moment.js","../node_modules/moment/locale/it.js","../node_modules/moment/locale/en-gb.js","../node_modules/moment/locale/de.js","../src/class/ConvertTimeInInteger.js","../src/_helpers/utilities.js","../src/customComponentFormio/DynamicCalendar/DaySelected.jsx","../src/customComponentFormio/DynamicCalendar/DynamicCalendar.jsx","../src/customComponentFormio/Calendar/Calendar.edit.display.js","../src/customComponentFormio/Calendar/Calendar.form.js","../src/customComponentFormio/Calendar/DaySelected.jsx","../src/customComponentFormio/Calendar/Calendar.jsx","../src/customComponentFormio/CalendarAdvanced/CalendarAdvanced.edit.display.js","../src/customComponentFormio/CalendarAdvanced/CalendarAdvanced.form.js","../src/customComponentFormio/CalendarAdvanced/SlotSelected.jsx","../src/functions/adjustSlotHeight.js","../src/customComponentFormio/CalendarAdvanced/calendarUtility.js","../src/customComponentFormio/CalendarAdvanced/CalendarAdvanced.jsx","../src/customComponentFormio/FileSdc/SdcFile.edit.data.js","../src/customComponentFormio/FileSdc/SdcFile.edit.display.js","../src/customComponentFormio/FileSdc/SdcFile.edit.file.js","../src/customComponentFormio/FileSdc/SdcFile.edit.validation.js","../src/customComponentFormio/FileSdc/SdcFile.form.js","../node_modules/lodash/isArray.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_root.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/eq.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/memoize.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/toString.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/get.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_baseSet.js","../node_modules/lodash/set.js","../src/class/Auth.js","../src/customComponentFormio/FileSdc/SdcFileReact.jsx","../src/customComponentFormio/AddressMap/AddressMap.edit.display.js","../src/customComponentFormio/AddressMap/AddressMap.form.js","../node_modules/accessible-autocomplete/dist/lib/accessible-autocomplete.react.min.js","../node_modules/accessible-autocomplete/react.js","../src/components/AccessibleAutocomplete.jsx","../node_modules/leaflet/dist/images/marker-icon-2x.png","../node_modules/leaflet/dist/images/marker-icon.png","../node_modules/leaflet/dist/images/marker-shadow.png","../src/customComponentFormio/AddressMap/Map.jsx","../src/customComponentFormio/AddressMap/AddressMap.jsx","../src/customComponentFormio/ListServices/ListServices.edit.display.js","../src/customComponentFormio/ListServices/ListServices.form.js","../src/customComponentFormio/ListServices/ListServices.jsx","../src/index.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport React, { useRef } from \"react\";\n\nconst Field = Formio.Components.components.field;\n\nexport const ReactPageBreak = (ref) => {\n const r = useRef()\n return (\n <div\n ref={r}\n className=\"row page-break-before pagebreak-container border border-info p-2 mb-2\"\n >\n <div className=\"col-12 text-center pagebreak-component\">Page break</div>\n </div>\n );\n};\n\nexport default class FormioPageBreak extends Field {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n static schema() {\n return Field.schema({\n type: \"pagebreak\",\n });\n }\n\n static builderInfo = {\n title: \"PageBreak\",\n group: \"basic\",\n icon: \"bi bi-file-break\",\n weight: 70,\n schema: FormioPageBreak.schema(),\n };\n\n //static editForm = editForm\n\n /**\n * Render returns a html string of the fully rendered component.\n *\n * @returns {string}\n */\n render() {\n // Calling super.render will wrap it html as a component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n\n /**\n * After the html string has been mounted into the dom, the dom element is returned here. Use refs to find specific\n * elements to attach functionality to.\n *\n * @param element\n * @returns {Promise}\n */\n attach(element) {\n return super.attach(element).then(() => {\n this.loadRefs(this.element, {\n [`react-${this.id}`]: \"single\",\n });\n\n const reactRoot = this.refs[`react-${this.id}`];\n if (!reactRoot) {\n return this;\n }\n\n this.rootComponent = createRoot(reactRoot);\n this.rootComponent.render(<ReactPageBreak {...this} current={this} />);\n\n return this;\n });\n }\n\n detach() {\n if (this.rootComponent) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n\n return super.detach();\n }\n\n /**\n * Get the value of the component from the dom elements.\n *\n * @returns {String}\n */\n getValue() {\n return \"\";\n }\n\n /**\n * Set the value of the component into the dom elements.\n *\n * @param value\n * @returns {boolean}\n */\n setValue(value) {\n if (!value) {\n return;\n }\n return;\n }\n\n}\n","export const baseUrl = () => {\n const location = window.location;\n const globalRegex = new RegExp(\n \"qa.bugliano.pi.it|localhost|opencity-labs.gitlab.io|form-builder-qa.stanzadelcittadino.it\",\n \"g\",\n );\n let url = null;\n if (globalRegex.test(location.hostname)) {\n url = \"https://servizi.comune-qa.bugliano.pi.it/lang\";\n } else if (window.BASE_URL) {\n url = window.BASE_URL;\n } else {\n const explodedPath = location.pathname.split(\"/\");\n url = location.origin + \"/\" + explodedPath[1];\n }\n return url;\n};\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n type: \"select\",\n label: \"Nome Calendario\",\n key: \"calendarId\",\n input: true,\n weight: 1,\n placeholder: \"Nome Calendario\",\n tooltip: \"Inserisci il nome del calendario\",\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars?type=time_variable_slots\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.title }}</span>\",\n selectValues: \"Results\",\n },\n {\n type: \"checkbox\",\n label: \"Seleziona orari di apertura\",\n key: \"select_opening_hours\",\n input: true,\n weight: 1,\n tooltip: \"Abilita per selezionare i singoli orari di apertura\",\n defaultValue: false,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n type: \"select\",\n label: \"Orari di apertura\",\n key: \"opening_hours\",\n input: true,\n weight: 1,\n placeholder: \"Seleziona gli orari di apertura\",\n tooltip: \"Seleziona gli orari di apertura\",\n multiple: true,\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars/{{data.calendarId}}/opening-hours\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.name }}</span>\",\n selectValues: \"results\",\n conditional: {\n show: true,\n when: \"select_opening_hours\",\n eq: \"true\",\n },\n },\n {\n label: \"Api Url\",\n redrawOn: \"data\",\n calculateValue:\n \"if (data.calendarId) {\\n\" +\n \" let url = data.url + '/api/calendars/' + data.calendarId + '/overlaps';\\n\" +\n \" if (data.select_opening_hours && data.opening_hours.length > 0) {\\n\" +\n ' let qs = \"?opening_hours=\" + data.opening_hours.join();\\n' +\n \" url = url + qs;\\n\" +\n \" }\\n\" +\n \" if (data.api_url !== url) value = url;\\n\" +\n \"} else {url = ''}\",\n key: \"api_url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n label: \"Sovrapposizioni\",\n inputFormat: \"plain\",\n redrawOn: \"api_url\",\n calculateValue:\n \"\" +\n \"function loadJSON(path, success, error){\\n\" +\n \" var xhr = new XMLHttpRequest();\\n\" +\n \" xhr.onreadystatechange = function() {\\n\" +\n \" if (xhr.readyState === XMLHttpRequest.DONE) {\\n\" +\n \" if (xhr.status === 200) {\\n\" +\n \" let responseData = JSON.parse(xhr.response);\\n\" +\n \" success(responseData.count);\\n\" +\n \" } else {\\n\" +\n \" error();\\n\" +\n \" }\\n\" +\n \" }\" +\n \" }\\n\" +\n ' xhr.open(\"GET\", path, true);\\n' +\n \" xhr.send();\\n\" +\n \"}\\n\" +\n \"if(data.calendarId && data.api_url){\\n\" +\n \" var url = data.api_url;\\n\" +\n \" loadJSON(url,\\n\" +\n \" function(count) {\\n\" +\n \" data.overlaps_validation = count; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = count;\\n\" +\n \" },\\n\" +\n \" function() {\\n\" +\n \" data.overlaps_validation = -1; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = -1;\\n\" +\n \" }\\n\" +\n \" );\\n\" +\n \"}\",\n validateOn: \"change\",\n validate: {\n customMessage: \"Vi sono sovrapposizioni negli orari di apertura\",\n custom:\n \"\" +\n \"if (document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value === '0') {\" +\n \"valid=true\" +\n \"} else {\" +\n \"valid = 'Sovrapposizione';\" +\n \"}\",\n },\n key: \"overlaps_validation\",\n attributes: {\n readonly: \"true\",\n },\n required: true,\n type: \"number\",\n input: true,\n weight: 1,\n },\n {\n label: \"Precisione minima (minuti)\",\n defaultValue: 1,\n required: true,\n inputFormat: \"plain\",\n key: \"range_step\",\n type: \"number\",\n input: true,\n weight: 1,\n },\n];\n","import { Components } from \"@formio/react\";\nimport DynamicCalendarEdit from \"./DynamicCalendar.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: DynamicCalendarEdit,\n },\n ],\n ...extend,\n );\n}\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n","import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link isSameWeek} function options.\n */\n\n/**\n * @name isSameWeek\n * @category Week Helpers\n * @summary Are the given dates in the same week (and month and year)?\n *\n * @description\n * Are the given dates in the same week (and month and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same week (and month and year)\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {\n * weekStartsOn: 1\n * })\n * //=> false\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same week?\n * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameWeek(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options)\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameWeek;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: \"weniger als 1 Sekunde\",\n other: \"weniger als {{count}} Sekunden\",\n },\n withPreposition: {\n one: \"weniger als 1 Sekunde\",\n other: \"weniger als {{count}} Sekunden\",\n },\n },\n\n xSeconds: {\n standalone: {\n one: \"1 Sekunde\",\n other: \"{{count}} Sekunden\",\n },\n withPreposition: {\n one: \"1 Sekunde\",\n other: \"{{count}} Sekunden\",\n },\n },\n\n halfAMinute: {\n standalone: \"eine halbe Minute\",\n withPreposition: \"einer halben Minute\",\n },\n\n lessThanXMinutes: {\n standalone: {\n one: \"weniger als 1 Minute\",\n other: \"weniger als {{count}} Minuten\",\n },\n withPreposition: {\n one: \"weniger als 1 Minute\",\n other: \"weniger als {{count}} Minuten\",\n },\n },\n\n xMinutes: {\n standalone: {\n one: \"1 Minute\",\n other: \"{{count}} Minuten\",\n },\n withPreposition: {\n one: \"1 Minute\",\n other: \"{{count}} Minuten\",\n },\n },\n\n aboutXHours: {\n standalone: {\n one: \"etwa 1 Stunde\",\n other: \"etwa {{count}} Stunden\",\n },\n withPreposition: {\n one: \"etwa 1 Stunde\",\n other: \"etwa {{count}} Stunden\",\n },\n },\n\n xHours: {\n standalone: {\n one: \"1 Stunde\",\n other: \"{{count}} Stunden\",\n },\n withPreposition: {\n one: \"1 Stunde\",\n other: \"{{count}} Stunden\",\n },\n },\n\n xDays: {\n standalone: {\n one: \"1 Tag\",\n other: \"{{count}} Tage\",\n },\n withPreposition: {\n one: \"1 Tag\",\n other: \"{{count}} Tagen\",\n },\n },\n\n aboutXWeeks: {\n standalone: {\n one: \"etwa 1 Woche\",\n other: \"etwa {{count}} Wochen\",\n },\n withPreposition: {\n one: \"etwa 1 Woche\",\n other: \"etwa {{count}} Wochen\",\n },\n },\n\n xWeeks: {\n standalone: {\n one: \"1 Woche\",\n other: \"{{count}} Wochen\",\n },\n withPreposition: {\n one: \"1 Woche\",\n other: \"{{count}} Wochen\",\n },\n },\n\n aboutXMonths: {\n standalone: {\n one: \"etwa 1 Monat\",\n other: \"etwa {{count}} Monate\",\n },\n withPreposition: {\n one: \"etwa 1 Monat\",\n other: \"etwa {{count}} Monaten\",\n },\n },\n\n xMonths: {\n standalone: {\n one: \"1 Monat\",\n other: \"{{count}} Monate\",\n },\n withPreposition: {\n one: \"1 Monat\",\n other: \"{{count}} Monaten\",\n },\n },\n\n aboutXYears: {\n standalone: {\n one: \"etwa 1 Jahr\",\n other: \"etwa {{count}} Jahre\",\n },\n withPreposition: {\n one: \"etwa 1 Jahr\",\n other: \"etwa {{count}} Jahren\",\n },\n },\n\n xYears: {\n standalone: {\n one: \"1 Jahr\",\n other: \"{{count}} Jahre\",\n },\n withPreposition: {\n one: \"1 Jahr\",\n other: \"{{count}} Jahren\",\n },\n },\n\n overXYears: {\n standalone: {\n one: \"mehr als 1 Jahr\",\n other: \"mehr als {{count}} Jahre\",\n },\n withPreposition: {\n one: \"mehr als 1 Jahr\",\n other: \"mehr als {{count}} Jahren\",\n },\n },\n\n almostXYears: {\n standalone: {\n one: \"fast 1 Jahr\",\n other: \"fast {{count}} Jahre\",\n },\n withPreposition: {\n one: \"fast 1 Jahr\",\n other: \"fast {{count}} Jahren\",\n },\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = options?.addSuffix\n ? formatDistanceLocale[token].withPreposition\n : formatDistanceLocale[token].standalone;\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return \"vor \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nconst dateFormats = {\n full: \"EEEE, do MMMM y\", // Montag, 7. Januar 2018\n long: \"do MMMM y\", // 7. Januar 2018\n medium: \"do MMM y\", // 7. Jan. 2018\n short: \"dd.MM.y\", // 07.01.2018\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"v.Chr.\", \"n.Chr.\"],\n abbreviated: [\"v.Chr.\", \"n.Chr.\"],\n wide: [\"vor Christus\", \"nach Christus\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1. Quartal\", \"2. Quartal\", \"3. Quartal\", \"4. Quartal\"],\n};\n\n// Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mär\",\n \"Apr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Okt\",\n \"Nov\",\n \"Dez\",\n ],\n\n wide: [\n \"Januar\",\n \"Februar\",\n \"März\",\n \"April\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"August\",\n \"September\",\n \"Oktober\",\n \"November\",\n \"Dezember\",\n ],\n};\n\n// https://st.unicode.org/cldr-apps/v#/de/Gregorian/\nconst formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: [\n \"Jan.\",\n \"Feb.\",\n \"März\",\n \"Apr.\",\n \"Mai\",\n \"Juni\",\n \"Juli\",\n \"Aug.\",\n \"Sep.\",\n \"Okt.\",\n \"Nov.\",\n \"Dez.\",\n ],\n\n wide: monthValues.wide,\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"D\", \"M\", \"D\", \"F\", \"S\"],\n short: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n abbreviated: [\"So.\", \"Mo.\", \"Di.\", \"Mi.\", \"Do.\", \"Fr.\", \"Sa.\"],\n wide: [\n \"Sonntag\",\n \"Montag\",\n \"Dienstag\",\n \"Mittwoch\",\n \"Donnerstag\",\n \"Freitag\",\n \"Samstag\",\n ],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nconst dayPeriodValues = {\n narrow: {\n am: \"vm.\",\n pm: \"nm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"Morgen\",\n afternoon: \"Nachm.\",\n evening: \"Abend\",\n night: \"Nacht\",\n },\n abbreviated: {\n am: \"vorm.\",\n pm: \"nachm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"Morgen\",\n afternoon: \"Nachmittag\",\n evening: \"Abend\",\n night: \"Nacht\",\n },\n wide: {\n am: \"vormittags\",\n pm: \"nachmittags\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"Morgen\",\n afternoon: \"Nachmittag\",\n evening: \"Abend\",\n night: \"Nacht\",\n },\n};\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"vm.\",\n pm: \"nm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"morgens\",\n afternoon: \"nachm.\",\n evening: \"abends\",\n night: \"nachts\",\n },\n abbreviated: {\n am: \"vorm.\",\n pm: \"nachm.\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"morgens\",\n afternoon: \"nachmittags\",\n evening: \"abends\",\n night: \"nachts\",\n },\n wide: {\n am: \"vormittags\",\n pm: \"nachmittags\",\n midnight: \"Mitternacht\",\n noon: \"Mittag\",\n morning: \"morgens\",\n afternoon: \"nachmittags\",\n evening: \"abends\",\n night: \"nachts\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber) => {\n const number = Number(dirtyNumber);\n\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i,\n};\nconst parseEraPatterns = {\n any: [/^v/i, /^n/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated:\n /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^j[aä]/i,\n /^f/i,\n /^mär/i,\n /^ap/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i,\n};\nconst parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated:\n /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i, // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i, // will never be matched. Night is matched by `pm`\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./de/_lib/formatDistance.js\";\nimport { formatLong } from \"./de/_lib/formatLong.js\";\nimport { formatRelative } from \"./de/_lib/formatRelative.js\";\nimport { localize } from \"./de/_lib/localize.js\";\nimport { match } from \"./de/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu](https://github.com/DeMuu)\n * @author Asia [@asia-t](https://github.com/asia-t)\n * @author Van Vuong Ngo [@vanvuongngo](https://github.com/vanvuongngo)\n * @author RomanErnst [@pex](https://github.com/pex)\n * @author Philipp Keck [@Philipp91](https://github.com/Philipp91)\n */\nexport const de = {\n code: \"de\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default de;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d MMMM yyyy\",\n long: \"d MMMM yyyy\",\n medium: \"d MMM yyyy\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\nimport { formatLong } from \"./en-GB/_lib/formatLong.js\";\n\n/**\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik](https://github.com/glintik)\n */\nexport const enGB = {\n code: \"en-GB\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default enGB;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"meno di un secondo\",\n other: \"meno di {{count}} secondi\",\n },\n\n xSeconds: {\n one: \"un secondo\",\n other: \"{{count}} secondi\",\n },\n\n halfAMinute: \"alcuni secondi\",\n\n lessThanXMinutes: {\n one: \"meno di un minuto\",\n other: \"meno di {{count}} minuti\",\n },\n\n xMinutes: {\n one: \"un minuto\",\n other: \"{{count}} minuti\",\n },\n\n aboutXHours: {\n one: \"circa un'ora\",\n other: \"circa {{count}} ore\",\n },\n\n xHours: {\n one: \"un'ora\",\n other: \"{{count}} ore\",\n },\n\n xDays: {\n one: \"un giorno\",\n other: \"{{count}} giorni\",\n },\n\n aboutXWeeks: {\n one: \"circa una settimana\",\n other: \"circa {{count}} settimane\",\n },\n\n xWeeks: {\n one: \"una settimana\",\n other: \"{{count}} settimane\",\n },\n\n aboutXMonths: {\n one: \"circa un mese\",\n other: \"circa {{count}} mesi\",\n },\n\n xMonths: {\n one: \"un mese\",\n other: \"{{count}} mesi\",\n },\n\n aboutXYears: {\n one: \"circa un anno\",\n other: \"circa {{count}} anni\",\n },\n\n xYears: {\n one: \"un anno\",\n other: \"{{count}} anni\",\n },\n\n overXYears: {\n one: \"più di un anno\",\n other: \"più di {{count}} anni\",\n },\n\n almostXYears: {\n one: \"quasi un anno\",\n other: \"quasi {{count}} anni\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"tra \" + result;\n } else {\n return result + \" fa\";\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE d MMMM y\",\n long: \"d MMMM y\",\n medium: \"d MMM y\",\n short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} {{time}}\",\n long: \"{{date}} {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst weekdays = [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\",\n];\n\nfunction lastWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica scorsa alle' p\";\n default:\n return \"'\" + weekdays[day] + \" scorso alle' p\";\n }\n}\n\nfunction thisWeek(day) {\n return \"'\" + weekdays[day] + \" alle' p\";\n}\n\nfunction nextWeek(day) {\n switch (day) {\n case 0:\n return \"'domenica prossima alle' p\";\n default:\n return \"'\" + weekdays[day] + \" prossimo alle' p\";\n }\n}\n\nconst formatRelativeLocale = {\n lastWeek: (date, baseDate, options) => {\n const day = date.getDay();\n if (isSameWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return lastWeek(day);\n }\n },\n yesterday: \"'ieri alle' p\",\n today: \"'oggi alle' p\",\n tomorrow: \"'domani alle' p\",\n nextWeek: (date, baseDate, options) => {\n const day = date.getDay();\n if (isSameWeek(date, baseDate, options)) {\n return thisWeek(day);\n } else {\n return nextWeek(day);\n }\n },\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date, baseDate, options);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"aC\", \"dC\"],\n abbreviated: [\"a.C.\", \"d.C.\"],\n wide: [\"avanti Cristo\", \"dopo Cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"G\", \"F\", \"M\", \"A\", \"M\", \"G\", \"L\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"gen\",\n \"feb\",\n \"mar\",\n \"apr\",\n \"mag\",\n \"giu\",\n \"lug\",\n \"ago\",\n \"set\",\n \"ott\",\n \"nov\",\n \"dic\",\n ],\n\n wide: [\n \"gennaio\",\n \"febbraio\",\n \"marzo\",\n \"aprile\",\n \"maggio\",\n \"giugno\",\n \"luglio\",\n \"agosto\",\n \"settembre\",\n \"ottobre\",\n \"novembre\",\n \"dicembre\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"L\", \"M\", \"M\", \"G\", \"V\", \"S\"],\n short: [\"dom\", \"lun\", \"mar\", \"mer\", \"gio\", \"ven\", \"sab\"],\n abbreviated: [\"dom\", \"lun\", \"mar\", \"mer\", \"gio\", \"ven\", \"sab\"],\n wide: [\n \"domenica\",\n \"lunedì\",\n \"martedì\",\n \"mercoledì\",\n \"giovedì\",\n \"venerdì\",\n \"sabato\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"m.\",\n pm: \"p.\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"mattina\",\n afternoon: \"pomeriggio\",\n evening: \"sera\",\n night: \"notte\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"mattina\",\n afternoon: \"pomeriggio\",\n evening: \"sera\",\n night: \"notte\",\n },\n wide: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"mattina\",\n afternoon: \"pomeriggio\",\n evening: \"sera\",\n night: \"notte\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"m.\",\n pm: \"p.\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"di mattina\",\n afternoon: \"del pomeriggio\",\n evening: \"di sera\",\n night: \"di notte\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"di mattina\",\n afternoon: \"del pomeriggio\",\n evening: \"di sera\",\n night: \"di notte\",\n },\n wide: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"mezzanotte\",\n noon: \"mezzogiorno\",\n morning: \"di mattina\",\n afternoon: \"del pomeriggio\",\n evening: \"di sera\",\n night: \"di notte\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return String(number);\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(aC|dC)/i,\n abbreviated: /^(a\\.?\\s?C\\.?|a\\.?\\s?e\\.?\\s?v\\.?|d\\.?\\s?C\\.?|e\\.?\\s?v\\.?)/i,\n wide: /^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i,\n};\nconst parseEraPatterns = {\n any: [/^a/i, /^(d|e)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^t[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[gfmalsond]/i,\n abbreviated: /^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,\n wide: /^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^g/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^g/i,\n /^l/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ge/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^mag/i,\n /^gi/i,\n /^l/i,\n /^ag/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[dlmgvs]/i,\n short: /^(do|lu|ma|me|gi|ve|sa)/i,\n abbreviated: /^(dom|lun|mar|mer|gio|ven|sab)/i,\n wide: /^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^g/i, /^v/i, /^s/i],\n any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^g/i, /^v/i, /^s/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow:\n /^(a|m\\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n any: /^([ap]\\.?\\s?m\\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mezza/i,\n noon: /^mezzo/i,\n morning: /mattina/i,\n afternoon: /pomeriggio/i,\n evening: /sera/i,\n night: /notte/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./it/_lib/formatDistance.js\";\nimport { formatLong } from \"./it/_lib/formatLong.js\";\nimport { formatRelative } from \"./it/_lib/formatRelative.js\";\nimport { localize } from \"./it/_lib/localize.js\";\nimport { match } from \"./it/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Italian locale.\n * @language Italian\n * @iso-639-2 ita\n * @author Alberto Restifo [@albertorestifo](https://github.com/albertorestifo)\n * @author Giovanni Polimeni [@giofilo](https://github.com/giofilo)\n * @author Vincenzo Carrese [@vin-car](https://github.com/vin-car)\n */\nexport const it = {\n code: \"it\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default it;\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","export const convertTimeInInteger = (string) => {\n let concatString = \"\";\n string.split(\":\").forEach((time) => {\n concatString += time;\n });\n return parseInt(concatString);\n};\n\nexport const convertIntegerToTime = (number) => {\n const paddedNumber = number.toString().padStart(4, \"0\");\n const parts = paddedNumber.match(/.{1,2}/g);\n return parts.join(\":\");\n};\n","import i18next from \"i18next\";\n\nexport function capitalizeFirstLetter(string) {\n const lowerCase = string.toLowerCase()\n return lowerCase.charAt(0).toUpperCase() + lowerCase.slice(1);\n}\n\nexport function formatBytes(bytes, decimals = 2) {\n if (!+bytes) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n}\n\nexport function resizeImage(base64Str, maxWidth = 400, maxHeight = 350) {\n return new Promise((resolve) => {\n let img = new Image();\n img.src = base64Str;\n img.onload = () => {\n let canvas = document.createElement(\"canvas\");\n const MAX_WIDTH = maxWidth;\n const MAX_HEIGHT = maxHeight;\n let width = img.width;\n let height = img.height;\n let shouldResize = false;\n\n if (width > height) {\n if (width > MAX_WIDTH) {\n height *= MAX_WIDTH / width;\n width = MAX_WIDTH;\n shouldResize = true;\n }\n } else {\n if (height > MAX_HEIGHT) {\n width *= MAX_HEIGHT / height;\n height = MAX_HEIGHT;\n shouldResize = true;\n }\n }\n if (shouldResize) {\n canvas.width = width;\n canvas.height = height;\n let ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0, width, height);\n resolve(canvas.toDataURL(\"image/jpeg\", 0.9));\n } else {\n resolve(base64Str);\n }\n };\n });\n}\n\nexport function getBase64(file) {\n let reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = function () {\n return reader.result;\n };\n reader.onerror = function (error) {\n console.log(\"Error: \", error);\n };\n}\n\nexport function isImage(url) {\n return /\\.(jpg|jpeg|png|webp|avif|gif|svg|heic|heif)$/.test(url);\n}\n\nexport function countItemsNested(data) {\n let k = 0;\n let i = 0;\n const stats = {};\n data.forEach((arr) => {\n arr.attachments.map((e) =>\n Object.assign(stats, {\n images: isImage(e.name) ? (k = k + 1) : k,\n files: !isImage(e.name) ? (i = i + 1) : i,\n }),\n );\n });\n return stats;\n}\n\nexport function detectBoundingBox() {\n // window.OC_BB = lng1,lon1,lng2,lon2\n const boundingBoxItaly =\n \"6.7499552751,36.619987291,18.4802470232,47.1153931748\";\n const boundingBoxCustom = window.OC_BB\n ? window.OC_BB.split(\",\")\n : boundingBoxItaly.split(\",\");\n return boundingBoxCustom\n ? [\n [boundingBoxCustom[1], boundingBoxCustom[0]],\n [boundingBoxCustom[3], boundingBoxCustom[2]],\n ]\n : [\n [6.7499552751, 36.619987291],\n [18.4802470232, 47.1153931748],\n ];\n}\n\nexport function isObjectEmpty(objectName) {\n return (\n objectName &&\n Object.keys(objectName).length === 0 &&\n objectName.constructor === Object\n );\n}\n\nexport const locationNameFormatter = (data) => {\n const properties = data.address;\n if (data.addresstype === \"county\" && properties[\"country\"]) {\n return properties[\"county\"];\n } else if (data.addresstype === \"village\" && properties[\"village\"]) {\n return properties[\"village\"];\n }\n const parts = [];\n const place = [\n \"emergency\",\n \"historic\",\n \"military\",\n \"natural\",\n \"landuse\",\n \"place\",\n \"railway\",\n \"man_made\",\n \"aerialway\",\n \"boundary\",\n \"amenity\",\n \"aeroway\",\n \"club\",\n \"craft\",\n \"leisure\",\n \"office\",\n \"mountain_pass\",\n \"shop\",\n \"tourism\",\n \"bridge\",\n \"tunnel\",\n \"waterway\",\n \"name\",\n ];\n\n place.forEach((prop) => {\n if (properties.hasOwnProperty(prop) && properties[prop]) {\n parts.push(properties[prop]);\n }\n });\n if (properties[\"road\"]) {\n parts.push(properties[\"road\"]);\n } else if (properties[\"pedestrian\"]) {\n parts.push(properties[\"pedestrian\"]);\n } else if (properties[\"suburb\"]) {\n parts.push(properties[\"suburb\"]);\n } else if (properties[\"square\"]) {\n parts.push(properties[\"square\"]);\n } else {\n if (properties[\"neighbourhood\"]) {\n parts.push(properties[\"neighbourhood\"]);\n }\n if (properties[\"hamlet\"]) {\n parts.push(properties[\"hamlet\"]);\n } else if (properties[\"isolated_dwelling\"]) {\n parts.push(properties[\"isolated_dwelling\"]);\n } else if (properties[\"locality\"]) {\n parts.push(properties[\"locality\"]);\n } else if (properties[\"croft\"]) {\n parts.push(properties[\"croft\"]);\n }\n }\n if (properties[\"house_number\"]) {\n parts.push(properties[\"house_number\"]);\n }\n if (properties[\"postcode\"]) {\n parts.push(properties[\"postcode\"]);\n }\n if (properties[\"village\"]) {\n parts.push(properties[\"village\"]);\n }\n if (properties[\"town\"]) {\n parts.push(properties[\"town\"]);\n } else if (properties[\"city\"]) {\n parts.push(properties[\"city\"]);\n }\n var name = parts.join(\", \").substr(0, 150);\n return name;\n};\n\nexport const checkAnonymUser = (email) => {\n const globalRegex = new RegExp(\"anonymous.fake.email\", \"gm\");\n return globalRegex.test(email);\n};\n\nexport const checkAnonymUserFiscalCode = (fiscalCode) => {\n const globalRegex = new RegExp(\"^[0-9a-fA-F]{8}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{4}\\\\b-[0-9a-fA-F]{12}$\", \"gm\");\n return globalRegex.test(fiscalCode);\n};\n\nexport const checkServiceNotScheduledNow = (service) => {\n let scheduled = service.status === 4;\n if (scheduled && service.scheduled_from && service.scheduled_to) {\n const nowTime = Date.now();\n scheduled =\n Date.parse(service.scheduled_from) > nowTime ||\n nowTime > Date.parse(service.scheduled_to)\n ? true\n : false;\n }\n return scheduled;\n};\n\nexport const serviceHasStamps = (service) => {\n if (service?.stamps && service.stamps.some((s) => s.phase === \"request\")) {\n return true;\n } else {\n return false;\n }\n};\n\n// get from session (if the value expired it is destroyed)\nexport function sessionGet(key) {\n let stringValue = window.sessionStorage.getItem(key);\n if (stringValue !== null) {\n let value = JSON.parse(stringValue);\n let expirationDate = new Date(value.expirationDate);\n if (expirationDate > new Date()) {\n return value.value;\n } else {\n window.sessionStorage.removeItem(key);\n }\n }\n return null;\n}\n\n// add into session\nexport function sessionSet(key, value, expirationToken) {\n let expirationDate = expirationToken\n ? new Date(expirationToken * 1000)\n : null;\n if (expirationDate) {\n let newValue = {\n value: value,\n expirationDate: expirationDate.toISOString(),\n };\n window.sessionStorage.setItem(key, JSON.stringify(newValue));\n }\n}\n\nexport function formatArrayWithLocale(words, locale) {\n if (!Array.isArray(words) || words.length === 0) {\n return \"\";\n }\n\n const separator = i18next.t(\"arraySeparator\", { lng: locale }) || \", \";\n const lastSeparator =\n i18next.t(\"OrArrayLastSeparator\", { lng: locale }) || \" o \";\n\n if (words.length === 1) {\n return words[0];\n }\n const copy = [...words];\n const lastWord = copy.pop();\n return `${copy.join(separator)}${lastSeparator}${lastWord}`;\n}\n\nexport function getLoginProviders(locale) {\n const envLoginProvider =\n typeof process !== \"undefined\" &&\n process?.env?.REACT_APP_LOGIN_PROVIDER\n ? process.env.REACT_APP_LOGIN_PROVIDER.split(\",\")\n : [];\n const loginProvider =\n window.OC_LOGIN_PROVIDER || envLoginProvider;\n return formatArrayWithLocale(loginProvider, locale);\n}\n\n/**\n * Restituisce lo shadowRoot del widget Form.io, oppure document come fallback.\n */\nexport function getShadowRoot() {\n const widget = document.querySelector(\"widget-formio\");\n return widget?.shadowRoot || document;\n}\n","import React from \"react\";\n\nfunction DaySelected({ day, slot, i18next }) {\n return (\n <li className=\"it-list-item\">\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n <b>{day}</b> {i18next.t(\"alle\")} {i18next.t(\"ore\")} <b>{slot}</b>\n </span>\n </div>\n </div>\n </li>\n );\n}\n\nexport default DaySelected;\n","import editForm from \"./DynamicCalendar.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport { DayPicker } from \"react-day-picker\";\nimport Countdown from \"react-countdown\";\nimport \"react-day-picker/style.css\";\nimport { it, de, enGB } from \"date-fns/locale\";\nimport moment from \"moment\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport {\n Alert,\n Button,\n Icon,\n Input,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from \"design-react-kit\";\nimport {\n convertIntegerToTime,\n convertTimeInInteger,\n} from \"../../class/ConvertTimeInInteger\";\nimport Swal from \"sweetalert2\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport DaySelected from \"./DaySelected\";\nimport dayjs from \"dayjs\";\n\nconst Field = Formio.Components.components.field;\n\nexport const ReactDynamicCalendar = ({\n component,\n current,\n onChange,\n i18next,\n}) => {\n //Data sul calendario selezionata\n const [selected, setSelected] = useState();\n\n //Date sul calendario disabilitate\n const [disabledDates, setDisabledDates] = useState([]);\n\n const [daysSlot, setDaysSlot] = useState([]);\n // Mostra errore se non ci sono date disponibili\n const [noAvailableSlot, setNoAvailableSlot] = useState(false);\n\n //Meeting id restituito dalla chiamata draft\n const [draftMeeting, setDraftMeeting] = useState(null);\n\n // Slot selezionato\n const [slotSelected, setSlotSelected] = useState(null);\n\n const [selectedData, setSelectedData] = useState(null);\n const [activeSlot, setActiveSlot] = useState(null);\n\n //Prima data disponibile del mese\n const [firstAvailableSlot, setFirstAvailableSlot] = useState({});\n // Dato caledario sola lettura\n const [renderData, setRenderData] = useState(null);\n\n //Modale\n const [isOpen, toggleModal] = useState(false);\n\n //Lista meeting\n const [listMeeting, setListMeeting] = useState([]);\n\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n\n const refButtonSlot = useRef();\n\n const calendarID = component.calendarId;\n\n moment.locale(i18next.language);\n\n const calculateAvailableDates = (date) => {\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n fetch(getMonthlyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((dateAvailables) => {\n let daysInMonth = getListDaysInMonth(date ? date : new Date());\n\n //Filtro solo i giorni disponibili\n const elements = dateAvailables.filter(\n (item) => item.available == true,\n );\n\n //Conto quandi gionri disponibili ci sono\n const countAllElmAvailable = elements.length;\n if (countAllElmAvailable === 0) {\n resetValue();\n }\n\n let calculateAvailableDates = [];\n daysInMonth.forEach((day) => {\n if (\n dateAvailables.some(\n (item) => item.date === day && item.available == true,\n )\n ) {\n calculateAvailableDates.push({ available: true, date: day });\n } else {\n calculateAvailableDates.push({ available: false, date: day });\n }\n });\n const dates = calculateAvailableDates.map((el) => {\n if (el.available === false) {\n return moment(el.date, \"YYYY-MM-DD\").toDate();\n }\n });\n setDisabledDates(dates);\n // Seleziono il primo giorno disponibile\n const firstDayAvailable = elements.length ? elements[0].date : date;\n\n getDaysSlot(firstDayAvailable);\n })\n .catch((error) => console.error(error));\n };\n\n const getDaysSlot = (date) => {\n setActiveSlot(null);\n setSelectedData(null);\n setDaysSlot([]);\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n\n fetch(getDailyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((daysSlot) => {\n const elements = daysSlot.filter((item) => item.availability == true);\n setFirstAvailableSlot(elements[0]);\n if (elements.length > 0) {\n setDaysSlot(daysSlot);\n setNoAvailableSlot(false);\n //Seleziono la data testuale sulla colonna degli slots\n setSelectedData(moment(date).format(\"L\"));\n //Seleziono la data sul calendario\n setSelected(moment(date, \"YYYY-MM-DD\").toDate());\n } else {\n //Seleziono la data sul calendario\n if (daysSlot.length > 0) {\n setSelected(moment(daysSlot[0].date, \"YYYY-MM-DD\").toDate());\n }\n setDaysSlot([]);\n resetValue();\n }\n });\n };\n\n const saveRenderData = () => {\n if (calendarID !== \"\" && calendarID != null) {\n if (!current.dataValue) {\n calculateAvailableDates(new Date());\n } else {\n if (component.multiple && Array.isArray(current.dataValue)) {\n if (current.dataValue.length > 0) {\n setRenderData(current.dataValue);\n let parseListMeeting = [];\n current.dataValue.map((item) => {\n parseListMeeting.push({\n ...item,\n date: moment(item.date, \"YYYY-MM-DD\").format(\"DD-MM-YYYY\"),\n });\n });\n setListMeeting(parseListMeeting);\n }\n } else if (\n !component.multiple &&\n typeof current.dataValue === \"object\"\n ) {\n const renderData = {\n date: current.dataValue.date,\n slot: current.dataValue.slot,\n };\n const parseListMeeting = {\n ...current.dataValue,\n date: moment(current.dataValue.date, \"YYYY-MM-DD\").format(\n \"DD-MM-YYYY\",\n ),\n };\n setListMeeting([parseListMeeting]);\n setRenderData(renderData);\n } else {\n let explodedValue = current.dataValue\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n const renderData = {\n date: moment(explodedValue[0], \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: explodedValue[1],\n };\n\n if (component.multiple) {\n onChange([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n } else {\n onChange({\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n });\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n }\n setRenderData(renderData);\n }\n }\n }\n };\n\n useEffect(() => {\n window.FormioInstance?.formReady.then(() => {\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n });\n }, []);\n\n const getListDaysInMonth = (date) => {\n let monthDate = moment(date, \"YYYY-MM\");\n let daysInMonth = monthDate.daysInMonth();\n let arrDays = [];\n\n while (daysInMonth) {\n let current = moment(date).date(daysInMonth);\n arrDays.push(current.format(\"YYYY-MM-DD\"));\n daysInMonth--;\n }\n return arrDays;\n };\n\n const getMonthlyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities`;\n\n let queryParameters = [\n `from_time=${moment(date).startOf(\"month\").format(\"YYYY-MM-DD\")}`,\n `to_time=${moment(date).endOf(\"month\").format(\"YYYY-MM-DD\")}`,\n ];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n // filter availabilities by selected opening-hours (this is mandatory in case of overlapped opening hours)\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n return `${url}?${queryParameters.join(\"&\")}`;\n };\n\n const getDailyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n const formattedDate = moment(date).format(\"YYYY-MM-DD\");\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities/${formattedDate}`;\n\n let queryParameters = [];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n //if (this.meeting) {\n // Exclude saved meeting from unavailabilities\n // queryParameters.push(`exclude=${this.meeting}`);\n // }\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n if (queryParameters) {\n url = `${url}?${queryParameters.join(\"&\")}`;\n }\n\n return url;\n };\n\n const onMonthChange = (data) => {\n calculateAvailableDates(data);\n };\n\n const onDayClick = (data) => {\n setTimeout(() => {\n toggleModal(!isOpen);\n },1000)\n getDaysSlot(data);\n\n };\n\n const onClickSelectDate = (element) => {\n setActiveSlot(null);\n setTimeout(() => {\n if (element) {\n setSlotSelected(element.target.dataset);\n setActiveSlot(element.target.id);\n }\n }, 300);\n };\n\n const createOrUpdateMeeting = (valueSlot) => {\n setDraftMeeting(null);\n\n let url = `${baseUrl()}/it/meetings/new-draft`,\n dataMeet = {\n date: slotSelected?.date\n ? moment(slotSelected?.date).format(\"DD-MM-YYYY\")\n : moment(valueSlot.target.dataset.date).format(\"DD-MM-YYYY\"),\n slot:\n slotSelected?.value_start && slotSelected?.value_end\n ? slotSelected.value_start + \"-\" + slotSelected.value_end\n : valueSlot.target.dataset.slots,\n calendar: component.calendarId,\n opening_hour: slotSelected?.opening_hour\n ? slotSelected?.opening_hour\n : valueSlot.target.dataset.opening_hour,\n meeting: draftMeeting ? draftMeeting.id : \"\",\n first_available_date: firstAvailableSlot.date,\n first_available_start_time: firstAvailableSlot.start_time,\n first_available_end_time: firstAvailableSlot.end_time,\n first_availability_updated_at: moment().format(),\n };\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(dataMeet),\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n },\n strictErrors: true,\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(i18next.t(\"Intervallo selezionato non disponibile!\"));\n }\n return response.json();\n })\n .then((draftMeet) => {\n setDraftMeeting(draftMeet);\n const updateMeeting = {\n //...dataMeet,\n date: dataMeet.date,\n slot: dataMeet.slot,\n calendar_id: dataMeet.calendar[0],\n opening_hour_id: dataMeet.opening_hour || dataMeet.opening_hour_id,\n meeting_id: draftMeet.id,\n };\n setListMeeting([...listMeeting, updateMeeting]);\n })\n .catch((e) => {\n console.log(e);\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n };\n\n const handleConfirmMeeting = () => {\n if (slotSelected) {\n //Creo l'appuntamento in bozza\n createOrUpdateMeeting();\n toggleModal(!isOpen);\n }\n };\n\n const Completionist = () => (\n <span>{i18next.t(\"Tempo prenotazione scaduto!\")}</span>\n );\n\n // Renderer CountDown callback with condition\n const renderer = ({ minutes, seconds, completed }) => {\n if (completed) {\n // Render a completed state\n return <Completionist />;\n } else {\n // Render a countdown\n return (\n <div>\n <div>\n {\" \"}\n <span>\n {\" \"}\n <i>\n {i18next.t(\n \"Per confermare la prenotazione che ti abbiamo riservato procedi con l’invio di questa pratica e con il pagamento (se richiesto) di quanto previsto entro\",\n )}\n :\n </i>{\" \"}\n <b>\n {minutes} {i18next.t(\"minuti\")} {seconds} {i18next.t(\"secondi\")}\n </b>\n </span>\n </div>\n </div>\n );\n }\n };\n\n const handleFromTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue > convertTimeInInteger(slotSelected.end)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_start: e.target.value });\n }\n };\n\n const handleToTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue < convertTimeInInteger(slotSelected.start)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_end: e.target.value });\n }\n };\n\n // Imposto il valore del calendario per formio\n /**\n * @param {string} value\n */\n const setValueCalendar = (value) => {\n if (value === null || value === \"\") {\n //Faccio reset del valore di formio\n onChange(\"\");\n } else {\n if (Array.isArray(value) && value.length > 0) {\n let valueMeetings = [];\n listMeeting.map((meeting) => {\n valueMeetings.push({\n date: moment(meeting.date, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: meeting.slot,\n calendar_id: meeting.calendar_id || meeting.calendar[0],\n meeting_id: meeting.meeting_id,\n opening_hour_id: meeting.opening_hour || meeting.opening_hour_id,\n });\n });\n if (component.multiple) {\n onChange(valueMeetings);\n } else {\n onChange(valueMeetings[0]);\n }\n } else {\n onChange(\"\");\n }\n }\n };\n\n //Reset dei valori di prenotazione\n const resetValue = () => {\n setNoAvailableSlot(true);\n setDraftMeeting(null);\n setSelectedData(null);\n setValueCalendar(null);\n };\n\n // Recupero il locale per il comp. DayPicker\n const getCurrentLocale = () => {\n if (i18next.language === \"it\") {\n return it;\n } else if (i18next.language === \"en\") return enGB;\n else if (i18next.language === \"de\") return de;\n };\n\n useEffect(() => {\n setValueCalendar(listMeeting);\n }, [listMeeting]);\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n } else {\n setRenderDataReadOnly(false);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n }\n }, []);\n\n const removeItem = (index, meeting) => {\n let url = `${baseUrl()}/api/meetings/${meeting.meeting_id}`;\n\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n }).then((response) => {\n if (response && response.status > 400) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante la cancellazione dello slot\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n const newArray = [\n ...listMeeting.slice(0, index),\n ...listMeeting.slice(index + 1),\n ];\n setListMeeting(newArray);\n calculateAvailableDates(new Date());\n }\n });\n };\n\n return (\n <>\n {renderDataReadOnly && renderData ? (\n <div className=\"my-5 mx-2 d-print-block d-preview-calendar d-preview-calendar-none\">\n <b>\n {Array.isArray(renderData) && renderData.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {Array.isArray(renderData) ? (\n renderData.map((data) => (\n <DaySelected\n day={moment(data.date, \"DD-MM-YYYY\").format(\"DD/MM/YYYY\")}\n i18next={i18next}\n slot={data.slot}\n ></DaySelected>\n ))\n ) : (\n <DaySelected\n day={moment(renderData.date, \"DD-MM-YYYY\").format(\n \"DD/MM/YYYY\",\n )}\n i18next={i18next}\n slot={renderData.slot}\n ></DaySelected>\n )}\n </ul>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"slot-calendar \">\n <div className=\"row\">\n {component.multiple ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n />\n <p>\n {i18next.t(\n \"Seleziona un'altra data nel calendario per aggiungere una nuova prenotazione\",\n )}\n </p>\n </div>\n </div>\n ) : listMeeting.length !== 1 ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n />\n <p>\n {\" \"}\n {i18next.t(\n \"Seleziona un'altra data nel calendario per aggiungere una nuova prenotazione\",\n )}\n </p>\n </div>\n </div>\n ) : null}\n <div className=\"col-12\">\n {listMeeting.length ? (\n <div className={\"row m-2\"}>\n <div className={\"col-12 mb-4\"}>\n <b>\n {listMeeting.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :{\" \"}\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {listMeeting.map((meeting, index) => {\n return (\n <li key={\"li\" + index}>\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n {meeting.date}{\" \"}\n {slotSelected || meeting.slot\n ? `${i18next.t(\"alle\")} ${meeting.slot}`\n : \"\"}\n </span>\n <Icon\n icon={\"it-delete\"}\n onClick={() => removeItem(index, meeting)}\n role={\"button\"}\n />\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n {draftMeeting ? (\n <Alert\n color={\"info\"}\n defaultValue={\"string\"}\n className={\"d-print-none d-preview-calendar-none\"}\n >\n <Countdown\n date={draftMeeting.expiration_time}\n renderer={renderer}\n ></Countdown>\n </Alert>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n )}\n <Modal\n isOpen={isOpen}\n toggle={() => toggleModal(!isOpen)}\n labelledBy=\"daySelected\"\n size={\"lg\"}\n centered\n container={document.body}\n >\n <ModalHeader toggle={() => toggleModal(!isOpen)} id=\"daySelected\">\n {i18next.t(\"Seleziona una fascia oraria\")}\n </ModalHeader>\n {!noAvailableSlot ? (\n <div className=\"title-xsmall u-grey-dark px-4\">\n {\" \"}\n {i18next.t(\n \"Seleziona una fascia oraria e, se necessario, utilizza l'apposito controllo per accorciare la durata della prenotazione, Poi clicca su Conferma\",\n )}\n </div>\n ) : null}\n <ModalBody>\n <div className=\"row\">\n {listMeeting.length >= 1 ? (\n <div>\n {selectedData && !noAvailableSlot ? (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n ) : null}\n <div className=\"calendar-last-selection col-12 pt-2 mb-5\">\n <small className=\"pl-2 mb-2 d-flex px-2\">\n <b>\n <Icon\n icon={\"it-clock\"}\n className={\"mr-1\"}\n size={\"sm\"}\n ></Icon>{\" \"}\n {i18next.t(\"Ultimo orario selezionato\")}\n </b>\n </small>\n <div className=\"col-6 px-2\">\n <button\n type=\"button\"\n id={\"slot-last-selection\"}\n onClick={onClickSelectDate}\n tabIndex=\"1\"\n className={\n activeSlot === \"slot-last-selection\"\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n // data-date={listMeeting[listMeeting.length - 1].date}\n data-date={moment(selectedData, \"DD/MM/YYYY\").format(\n \"YYYY-MM-DD\",\n )}\n data-slots={listMeeting[listMeeting.length - 1].slot}\n data-opening_hour={\n listMeeting[listMeeting.length - 1].opening_hour_id\n }\n data-start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n data-value_start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-value_end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n disabled={noAvailableSlot}\n >\n {listMeeting[listMeeting.length - 1].slot}\n </button>\n </div>\n </div>\n </div>\n ) : null}\n <div>\n {selectedData && listMeeting.length >= 1 ? (\n <h6>{i18next.t(\"Seleziona altri orari\")}</h6>\n ) : noAvailableSlot ? null : (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n )}\n </div>\n {daysSlot.map((slot, index) => (\n <div className=\"col-6\" key={\"slot-\" + index}>\n <button\n type=\"button\"\n id={\"slot-\" + index}\n onClick={onClickSelectDate}\n ref={refButtonSlot}\n className={\n activeSlot === \"slot-\" + index\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n tabIndex=\"1\"\n data-date={slot.date}\n data-start={slot.start_time}\n data-end={slot.end_time}\n data-value_start={slot.start_time}\n data-value_end={slot.end_time}\n data-slots={slot.start_time + \"-\" + slot.end_time}\n data-opening_hour={slot.opening_hour}\n data-min_duration={slot.min_duration}\n disabled={slot.slots_available == 0}\n >\n {slot.start_time} - {slot.end_time}\n </button>\n </div>\n ))}\n {noAvailableSlot ? (\n <div className=\"callout callout-highlight warning\">\n <div className=\"callout-title\">\n <Icon aria-hidden icon=\"it-help-circle\" />\n {i18next.t(\"Attenzione\")}\n </div>\n <p>\n {\" \"}\n {i18next.t(\n \"Non è possibile prenotare per la data selezionata\",\n )}\n .\n </p>\n </div>\n ) : null}\n\n <div className=\"col-12\">\n {/* <div\n className=\"mt-3 d-print-block d-preview-calendar px-4 d-none\">{selectedData ?\n <div>\n <b>{i18next.t('Giorno selezionato per la prenotazione')}: </b> {selectedData} {slotSelected ? `${i18next.t('alle')} ${slotSelected.value_start}-${slotSelected.value_end}` : ''}\n </div> : null}</div>*/}\n\n {slotSelected?.value_start && activeSlot ? (\n <div className={\"row\"}>\n <div className={\"col-12 mb-3\"}>\n <p className={\"mb-3\"}>\n <b>\n {i18next.t(\n \"Se necessario, utilizza il controllo che segue per accorciare la durata della prenotazione\",\n )}\n </b>\n </p>\n </div>\n\n <div className={\"col-12 col-md-6 mb-4\"}>\n <Input\n type=\"time\"\n label={i18next.t(\"Dalle\")}\n className=\"active\"\n defaultValue={\n slotSelected.value_start || slotSelected.start\n }\n min={slotSelected.start}\n max={slotSelected.end}\n onBlur={handleFromTime}\n />\n </div>\n\n <div className={\"col-12 col-md-6 mb-4\"}>\n <Input\n type=\"time\"\n label={i18next.t(\"alle\")}\n className=\"active\"\n defaultValue={slotSelected.value_end || slotSelected.end}\n onBlur={handleToTime}\n min={slotSelected.start}\n max={slotSelected.end}\n />\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </ModalBody>\n\n <ModalFooter>\n <Button\n color=\"primary\"\n onClick={() => handleConfirmMeeting()}\n disabled={!selectedData || !slotSelected?.value_start}\n >\n {i18next.t(\"Conferma\")}\n </Button>\n </ModalFooter>\n </Modal>\n </>\n );\n};\n\nexport default class FormioDynamicCalendar extends Field {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Dynamic Calendar\",\n group: \"basic\",\n icon: \"bi bi-calendar-plus\",\n documentation: \"\",\n weight: 70,\n schema: FormioDynamicCalendar.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return Field.schema({\n type: \"dynamic_calendar\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attach(element) {\n return super.attach(element).then(() => {\n this.loadRefs(this.element, {\n [`react-${this.id}`]: \"single\",\n });\n\n const reactRoot = this.refs[`react-${this.id}`];\n if (!reactRoot) {\n return this;\n }\n\n this.rootComponent = createRoot(reactRoot);\n this.rootComponent.render(\n <ReactDynamicCalendar\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />,\n );\n\n return this;\n });\n }\n\n detach() {\n if (this.rootComponent) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n\n return super.detach();\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n\n if (Array.isArray(value)) {\n this.selectedNextSlots = value;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else if (typeof value === \"object\") {\n this.date = value.date;\n this.slot = value.slot;\n this.meeting = value.meeting_id;\n this.meeting_expiration_time = null;\n this.opening_hour = value.opening_hour_id;\n this.calendar_id = value.calendar_id;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else {\n let explodedValue = value\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n this.date = explodedValue[0];\n this.slot = explodedValue[1];\n this.meeting = explodedCalendar[1];\n this.meeting_expiration_time = null;\n this.opening_hour =\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\";\n\n this.updateValue({\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: this.meeting,\n opening_hour_id: this.opening_hour,\n });\n }\n }\n\n getValue() {\n if (\n !(this.date && this.slot && this.meeting && this.opening_hour) &&\n !(this.selectedNextSlots && this.selectedNextSlots.length > 0)\n ) {\n // Unset value (needed for calendars with 'required' option\"\n return null;\n }\n let meeting_id = this.meeting ? this.meeting : \"\";\n let opening_hour = this.opening_hour ? this.opening_hour : \"\";\n\n if (this.component.multiple) {\n return this.selectedNextSlots;\n }\n\n return {\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: meeting_id,\n opening_hour_id: opening_hour,\n };\n\n /* return `${this.date.replace(/-/g, \"/\")} @ ${this.slot} (${\n this.component.calendarId\n }#${meeting_id}#${opening_hour})`;*/\n // return super.getValue();\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n}\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n type: \"select\",\n label: \"Nome Calendario\",\n key: \"calendarId\",\n input: true,\n weight: 1,\n placeholder: \"Nome Calendario\",\n tooltip: \"Inserisci il nome del calendario\",\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars?type=time_fixed_slots\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.title }}</span>\",\n selectValues: \"Results\",\n },\n {\n type: \"checkbox\",\n label: \"Seleziona orari di apertura\",\n key: \"select_opening_hours\",\n input: true,\n weight: 1,\n tooltip: \"Abilita per selezionare i singoli orari di apertura\",\n defaultValue: false,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n type: \"select\",\n label: \"Orari di apertura\",\n key: \"opening_hours\",\n input: true,\n weight: 1,\n placeholder: \"Seleziona gli orari di apertura\",\n tooltip: \"Seleziona gli orari di apertura\",\n multiple: true,\n dataSrc: \"url\",\n defaultValue: \"\",\n data: {\n url: baseUrl() + \"/api/calendars/{{data.calendarId}}/opening-hours\",\n },\n valueProperty: \"id\",\n template: \"<span>{{ item.name }}</span>\",\n selectValues: \"results\",\n conditional: {\n show: true,\n when: \"select_opening_hours\",\n eq: \"true\",\n },\n },\n {\n label: \"Api Url\",\n redrawOn: \"data\",\n calculateValue:\n \"if (data.calendarId) {\\n\" +\n \" let url = data.url + '/api/calendars/' + data.calendarId + '/overlaps';\\n\" +\n \" if (data.select_opening_hours && data.opening_hours.length > 0) {\\n\" +\n ' let qs = \"?opening_hours=\" + data.opening_hours.join();\\n' +\n \" url = url + qs;\\n\" +\n \" }\\n\" +\n \" if (data.api_url !== url) value = url;\\n\" +\n \"} else {url = ''}\",\n key: \"api_url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n },\n {\n label: \"Sovrapposizioni\",\n inputFormat: \"plain\",\n redrawOn: \"api_url\",\n calculateValue:\n \"\" +\n \"function loadJSON(path, success, error){\\n\" +\n \" var xhr = new XMLHttpRequest();\\n\" +\n \" xhr.onreadystatechange = function() {\\n\" +\n \" if (xhr.readyState === XMLHttpRequest.DONE) {\\n\" +\n \" if (xhr.status === 200) {\\n\" +\n \" let responseData = JSON.parse(xhr.response);\\n\" +\n \" success(responseData.count);\\n\" +\n \" } else {\\n\" +\n \" error();\\n\" +\n \" }\\n\" +\n \" }\" +\n \" }\\n\" +\n ' xhr.open(\"GET\", path, true);\\n' +\n \" xhr.send();\\n\" +\n \"}\\n\" +\n \"if(data.calendarId && data.api_url){\\n\" +\n \" var url = data.api_url;\\n\" +\n \" loadJSON(url,\\n\" +\n \" function(count) {\\n\" +\n \" data.overlaps_validation = count; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = count;\\n\" +\n \" },\\n\" +\n \" function() {\\n\" +\n \" data.overlaps_validation = -1; \" +\n \" document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value = -1;\\n\" +\n \" }\\n\" +\n \" );\\n\" +\n \"}\",\n validateOn: \"change\",\n validate: {\n customMessage: \"Vi sono sovrapposizioni negli orari di apertura\",\n custom:\n \"\" +\n \"if (document.querySelector(\\\"input[name^='data[overlaps_validation]']\\\").value === '0') {\" +\n \"valid=true\" +\n \"} else {\" +\n \"valid = 'Sovrapposizione';\" +\n \"}\",\n },\n key: \"overlaps_validation\",\n attributes: {\n readonly: \"true\",\n },\n required: true,\n type: \"number\",\n input: true,\n weight: 1,\n },\n {\n label: \"Precisione minima (minuti)\",\n defaultValue: 1,\n required: true,\n inputFormat: \"plain\",\n key: \"range_step\",\n type: \"number\",\n input: true,\n weight: 1,\n },\n];\n","import { Components } from \"@formio/react\";\nimport DynamicCalendarEdit from \"./Calendar.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: DynamicCalendarEdit,\n },\n ],\n ...extend,\n );\n}\n","function DaySelected({ day, slot, i18next }) {\n return (\n <li className=\"it-list-item\">\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n <b>{day}</b> {i18next.t(\"alle\")} {i18next.t(\"ore\")} <b>{slot}</b>\n </span>\n </div>\n </div>\n </li>\n );\n}\n\nexport default DaySelected;\n","import editForm from \"./Calendar.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport { DayPicker } from \"react-day-picker\";\nimport Countdown from \"react-countdown\";\nimport \"react-day-picker/style.css\";\nimport { it, de, enGB } from \"date-fns/locale\";\nimport moment from \"moment\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport {\n Alert,\n Button,\n Icon,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from \"design-react-kit\";\nimport {\n convertIntegerToTime,\n convertTimeInInteger,\n} from \"../../class/ConvertTimeInInteger\";\nimport Swal from \"sweetalert2\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport DaySelected from \"./DaySelected\";\nimport dayjs from \"dayjs\";\n\nconst Field = Formio.Components.components.field;\n\nexport const ReactDynamicCalendar = ({\n component,\n current,\n onChange,\n i18next,\n}) => {\n //Data sul calendario selezionata\n const [selected, setSelected] = useState();\n\n //Date sul calendario disabilitate\n const [disabledDates, setDisabledDates] = useState([]);\n\n const [daysSlot, setDaysSlot] = useState([]);\n // Mostra errore se non ci sono date disponibili\n const [noAvailableSlot, setNoAvailableSlot] = useState(false);\n\n //Meeting id restituito dalla chiamata draft\n const [draftMeeting, setDraftMeeting] = useState(null);\n\n // Slot selezionato\n const [slotSelected, setSlotSelected] = useState(null);\n\n const [selectedData, setSelectedData] = useState(null);\n const [activeSlot, setActiveSlot] = useState(null);\n\n //Prima data disponibile del mese\n const [firstAvailableSlot, setFirstAvailableSlot] = useState({});\n // Dato caledario sola lettura\n const [renderData, setRenderData] = useState(null);\n\n //Modale\n const [isOpen, toggleModal] = useState(false);\n\n //Lista meeting\n const [listMeeting, setListMeeting] = useState([]);\n\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n\n const refButtonSlot = useRef();\n\n const calendarID = component.calendarId;\n\n moment.locale(i18next.language);\n\n const calculateAvailableDates = (date) => {\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n fetch(getMonthlyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((dateAvailables) => {\n let daysInMonth = getListDaysInMonth(date ? date : new Date());\n\n //Filtro solo i giorni disponibili\n const elements = dateAvailables.filter(\n (item) => item.available == true,\n );\n\n //Conto quandi gionri disponibili ci sono\n const countAllElmAvailable = elements.length;\n if (countAllElmAvailable === 0) {\n resetValue();\n }\n\n let calculateAvailableDates = [];\n daysInMonth.forEach((day) => {\n if (\n dateAvailables.some(\n (item) => item.date === day && item.available == true,\n )\n ) {\n calculateAvailableDates.push({ available: true, date: day });\n } else {\n calculateAvailableDates.push({ available: false, date: day });\n }\n });\n const dates = calculateAvailableDates.map((el) => {\n if (el.available === false) {\n return moment(el.date, \"YYYY-MM-DD\").toDate();\n }\n });\n setDisabledDates(dates);\n // Seleziono il primo giorno disponibile\n const firstDayAvailable = elements.length ? elements[0].date : date;\n\n getDaysSlot(firstDayAvailable);\n })\n .catch((error) => console.error(error));\n };\n\n const getDaysSlot = (date) => {\n setActiveSlot(null);\n setSelectedData(null);\n setDaysSlot([]);\n let formattedDate = moment(date).format(\"YYYY-MM-DD\");\n\n fetch(getDailyAvailabilitiesUrl(formattedDate))\n .then((response) => response.json())\n .then((daysSlot) => {\n const elements = daysSlot.filter((item) => item.availability == true);\n setFirstAvailableSlot(elements[0]);\n if (elements.length > 0) {\n setDaysSlot(daysSlot);\n setNoAvailableSlot(false);\n //Seleziono la data testuale sulla colonna degli slots\n setSelectedData(moment(date).format(\"L\"));\n //Seleziono la data sul calendario\n setSelected(moment(date, \"YYYY-MM-DD\").toDate());\n } else {\n //Seleziono la data sul calendario\n if (daysSlot.length > 0) {\n setSelected(moment(daysSlot[0].date, \"YYYY-MM-DD\").toDate());\n }\n setDaysSlot([]);\n resetValue();\n }\n });\n };\n\n const saveRenderData = () => {\n if (calendarID !== \"\" && calendarID != null) {\n if (!current.dataValue) {\n calculateAvailableDates(new Date());\n } else {\n if (component.multiple && Array.isArray(current.dataValue)) {\n if (current.dataValue.length > 0) {\n setRenderData(current.dataValue);\n let parseListMeeting = [];\n current.dataValue.map((item) => {\n parseListMeeting.push({\n ...item,\n date: moment(item.date, \"YYYY-MM-DD\").format(\"DD-MM-YYYY\"),\n });\n });\n setListMeeting(parseListMeeting);\n }\n } else if (\n !component.multiple &&\n typeof current.dataValue === \"object\"\n ) {\n const renderData = {\n date: current.dataValue.date,\n slot: current.dataValue.slot,\n };\n const parseListMeeting = {\n ...current.dataValue,\n date: moment(current.dataValue.date, \"YYYY-MM-DD\").format(\n \"DD-MM-YYYY\",\n ),\n };\n setListMeeting([parseListMeeting]);\n setRenderData(renderData);\n } else {\n let explodedValue = current.dataValue\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n const renderData = {\n date: moment(explodedValue[0], \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: explodedValue[1],\n };\n\n if (component.multiple) {\n onChange([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n } else {\n onChange({\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n });\n setListMeeting([\n {\n date: explodedValue[0],\n slot: explodedValue[1],\n calendar_id: explodedCalendar[0],\n meeting_id: explodedCalendar[1],\n opening_hour_id:\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\",\n },\n ]);\n }\n setRenderData(renderData);\n }\n }\n }\n };\n\n useEffect(() => {\n window.FormioInstance?.formReady.then(() => {\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n });\n }, []);\n\n const getListDaysInMonth = (date) => {\n let monthDate = moment(date, \"YYYY-MM\");\n let daysInMonth = monthDate.daysInMonth();\n let arrDays = [];\n\n while (daysInMonth) {\n let current = moment(date).date(daysInMonth);\n arrDays.push(current.format(\"YYYY-MM-DD\"));\n daysInMonth--;\n }\n return arrDays;\n };\n\n const getMonthlyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities`;\n\n let queryParameters = [\n `from_time=${moment(date).startOf(\"month\").format(\"YYYY-MM-DD\")}`,\n `to_time=${moment(date).endOf(\"month\").format(\"YYYY-MM-DD\")}`,\n ];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n // filter availabilities by selected opening-hours (this is mandatory in case of overlapped opening hours)\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n return `${url}?${queryParameters.join(\"&\")}`;\n };\n\n const getDailyAvailabilitiesUrl = (date, available = false) => {\n let calendarID = component.calendarId,\n selectOpeningHours = component.select_opening_hours,\n openingHours = component.select_opening_hours\n ? component.opening_hours\n : [],\n location = window.location,\n explodedPath = location.pathname.split(\"/\");\n\n const formattedDate = moment(date).format(\"YYYY-MM-DD\");\n let url = `${baseUrl()}/api/calendars/${calendarID}/availabilities/${formattedDate}`;\n\n let queryParameters = [];\n if (available) {\n queryParameters.push(`available=${available}`);\n }\n //if (this.meeting) {\n // Exclude saved meeting from unavailabilities\n // queryParameters.push(`exclude=${this.meeting}`);\n // }\n if (selectOpeningHours && openingHours) {\n // Select specific opening hours\n queryParameters.push(`opening_hours=${openingHours.join()}`);\n }\n\n if (queryParameters) {\n url = `${url}?${queryParameters.join(\"&\")}`;\n }\n\n return url;\n };\n\n const onMonthChange = (data) => {\n calculateAvailableDates(data);\n };\n\n const onDayClick = (data) => {\n setTimeout(() => {\n toggleModal(!isOpen);\n },1000)\n\n getDaysSlot(data);\n };\n\n const onClickSelectDate = (element) => {\n setActiveSlot(null);\n setTimeout(() => {\n if (element) {\n setSlotSelected(element.target.dataset);\n setActiveSlot(element.target.id);\n }\n }, 300);\n };\n\n const createOrUpdateMeeting = (valueSlot) => {\n setDraftMeeting(null);\n\n let url = `${baseUrl()}/it/meetings/new-draft`,\n dataMeet = {\n date: slotSelected?.date\n ? moment(slotSelected?.date).format(\"DD-MM-YYYY\")\n : moment(valueSlot.target.dataset.date).format(\"DD-MM-YYYY\"),\n slot:\n slotSelected?.value_start && slotSelected?.value_end\n ? slotSelected.value_start + \"-\" + slotSelected.value_end\n : valueSlot.target.dataset.slots,\n calendar: component.calendarId,\n opening_hour: slotSelected?.opening_hour\n ? slotSelected?.opening_hour\n : valueSlot.target.dataset.opening_hour,\n meeting: draftMeeting ? draftMeeting.id : \"\",\n first_available_date: firstAvailableSlot.date,\n first_available_start_time: firstAvailableSlot.start_time,\n first_available_end_time: firstAvailableSlot.end_time,\n first_availability_updated_at: moment().format(),\n };\n\n fetch(url, {\n method: \"POST\",\n body: JSON.stringify(dataMeet),\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n },\n strictErrors: true,\n })\n .then((response) => {\n if (!response.ok) {\n throw new Error(i18next.t(\"Intervallo selezionato non disponibile!\"));\n }\n return response.json();\n })\n .then((draftMeet) => {\n setDraftMeeting(draftMeet);\n const updateMeeting = {\n //...dataMeet,\n date: dataMeet.date,\n slot: dataMeet.slot,\n calendar_id: dataMeet.calendar[0],\n opening_hour_id: dataMeet.opening_hour || dataMeet.opening_hour_id,\n meeting_id: draftMeet.id,\n };\n setListMeeting([...listMeeting, updateMeeting]);\n })\n .catch((e) => {\n console.log(e);\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n };\n\n const handleConfirmMeeting = () => {\n if (slotSelected) {\n //Creo l'appuntamento in bozza\n createOrUpdateMeeting();\n toggleModal(!isOpen);\n }\n };\n\n const Completionist = () => (\n <span>{i18next.t(\"Tempo prenotazione scaduto!\")}</span>\n );\n\n // Renderer CountDown callback with condition\n const renderer = ({ minutes, seconds, completed }) => {\n if (completed) {\n // Render a completed state\n return <Completionist />;\n } else {\n // Render a countdown\n return (\n <div>\n <div>\n {\" \"}\n <span>\n {\" \"}\n <i>\n {i18next.t(\n \"Per confermare la prenotazione che ti abbiamo riservato procedi con l’invio di questa pratica e con il pagamento (se richiesto) di quanto previsto entro\",\n )}\n :\n </i>{\" \"}\n <b>\n {minutes} {i18next.t(\"minuti\")} {seconds} {i18next.t(\"secondi\")}\n </b>\n </span>\n </div>\n </div>\n );\n }\n };\n\n const handleFromTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue > convertTimeInInteger(slotSelected.end)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_start: e.target.value });\n }\n };\n\n const handleToTime = (e) => {\n const currentValue = convertTimeInInteger(e.target.value);\n const valueMin = convertTimeInInteger(e.target.min);\n const valueMax = convertTimeInInteger(e.target.max);\n\n if (\n currentValue < valueMin ||\n currentValue > valueMax ||\n currentValue < convertTimeInInteger(slotSelected.start)\n ) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"l'orario\")} <b>${convertIntegerToTime(currentValue)}</b> ${i18next.t(\"non è valido\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setValueCalendar(\"\");\n } else {\n setSlotSelected({ ...slotSelected, value_end: e.target.value });\n }\n };\n\n // Imposto il valore del calendario per formio\n /**\n * @param {string} value\n */\n const setValueCalendar = (value) => {\n if (value === null || value === \"\") {\n //Faccio reset del valore di formio\n onChange(\"\");\n } else {\n if (Array.isArray(value) && value.length > 0) {\n let valueMeetings = [];\n listMeeting.map((meeting) => {\n valueMeetings.push({\n date: moment(meeting.date, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n slot: meeting.slot,\n calendar_id: meeting.calendar_id || meeting.calendar[0],\n meeting_id: meeting.meeting_id,\n opening_hour_id: meeting.opening_hour || meeting.opening_hour_id,\n });\n });\n if (component.multiple) {\n onChange(valueMeetings);\n } else {\n onChange(valueMeetings[0]);\n }\n } else {\n onChange(\"\");\n }\n }\n };\n\n //Reset dei valori di prenotazione\n const resetValue = () => {\n setNoAvailableSlot(true);\n setDraftMeeting(null);\n setSelectedData(null);\n setValueCalendar(null);\n };\n\n // Recupero il locale per il comp. DayPicker\n const getCurrentLocale = () => {\n if (i18next.language === \"it\") {\n return it;\n } else if (i18next.language === \"en\") return enGB;\n else if (i18next.language === \"de\") return de;\n };\n\n useEffect(() => {\n setValueCalendar(listMeeting);\n }, [listMeeting]);\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n } else {\n setRenderDataReadOnly(false);\n setTimeout(() => {\n saveRenderData();\n }, 1000);\n }\n }, []);\n\n const removeItem = (index, meeting) => {\n\n let url = `${baseUrl()}/api/meetings/${meeting.meeting_id}`;\n\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n }).then((response) => {\n if (response && response.status > 400) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante la cancellazione dello slot\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n const newArray = [\n ...listMeeting.slice(0, index),\n ...listMeeting.slice(index + 1),\n ];\n setListMeeting(newArray);\n calculateAvailableDates(new Date());\n }\n });\n };\n\n return (\n <>\n {renderDataReadOnly && renderData ? (\n <div className=\"my-5 mx-2 d-print-block d-preview-calendar d-preview-calendar-none\">\n <b>\n {Array.isArray(renderData) && renderData.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {Array.isArray(renderData) ? (\n renderData.map((data) => (\n <DaySelected\n day={moment(data.date, \"DD-MM-YYYY\").format(\"DD/MM/YYYY\")}\n i18next={i18next}\n slot={data.slot}\n ></DaySelected>\n ))\n ) : (\n <DaySelected\n day={dayjs(renderData.date).format(\n \"DD/MM/YYYY\",\n )}\n i18next={i18next}\n slot={renderData.slot}\n ></DaySelected>\n )}\n </ul>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"slot-calendar \">\n <div className=\"row\">\n {component.multiple ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n\n />\n </div>\n </div>\n ) : listMeeting.length !== 1 ? (\n <div className=\"col-12 d-print-none d-preview-calendar-none\">\n <div className={\"m-2\"}>\n <h6>{i18next.t(component.label)}</h6>\n <DayPicker\n mode=\"single\"\n selected={selected}\n locale={getCurrentLocale()}\n disabled={disabledDates}\n onMonthChange={onMonthChange}\n onDayClick={onDayClick}\n\n />\n </div>\n </div>\n ) : null}\n <div className=\"col-12\">\n {listMeeting.length ? (\n <div className={\"row m-2\"}>\n <div className={\"col-12 mb-4\"}>\n <b>\n {listMeeting.length > 1\n ? i18next.t(\"Giorni selezionati per la prenotazione\")\n : i18next.t(\"Giorno selezionato per la prenotazione\")}\n :{\" \"}\n </b>\n <div className=\"mb-5\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n {listMeeting.map((meeting, index) => {\n return (\n <li key={\"li\" + index}>\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text pl-4\">\n {meeting.date}{\" \"}\n {slotSelected || meeting.slot\n ? `${i18next.t(\"alle\")} ${meeting.slot}`\n : \"\"}\n </span>\n <Icon\n icon={\"it-delete\"}\n onClick={() => removeItem(index, meeting)}\n role={\"button\"}\n />\n </div>\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n </div>\n {draftMeeting ? (\n <Alert\n color={\"info\"}\n defaultValue={\"string\"}\n className={\"d-print-none d-preview-calendar-none\"}\n >\n <Countdown\n date={draftMeeting.expiration_time}\n renderer={renderer}\n ></Countdown>\n </Alert>\n ) : null}\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n )}\n <Modal\n isOpen={isOpen}\n toggle={() => toggleModal(!isOpen)}\n labelledBy=\"daySelected\"\n size={\"lg\"}\n centered\n container={document.body}\n >\n <ModalHeader toggle={() => toggleModal(!isOpen)} id=\"daySelected\">\n {i18next.t(\"Seleziona una fascia oraria\")}\n </ModalHeader>\n <ModalBody>\n <div className=\"row\">\n {listMeeting.length >= 1 ? (\n <div>\n {selectedData && !noAvailableSlot ? (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n ) : null}\n <div className=\"calendar-last-selection col-12 pt-2 mb-5\">\n <small className=\"pl-2 mb-2 d-flex px-2\">\n <b>\n <Icon\n icon={\"it-clock\"}\n className={\"mr-1\"}\n size={\"sm\"}\n ></Icon>{\" \"}\n {i18next.t(\"Ultimo orario selezionato\")}\n </b>\n </small>\n <div className=\"col-6 px-2\">\n <button\n type=\"button\"\n id={\"slot-last-selection\"}\n onClick={onClickSelectDate}\n tabIndex=\"1\"\n className={\n activeSlot === \"slot-last-selection\"\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n // data-date={listMeeting[listMeeting.length - 1].date}\n data-date={moment(selectedData, \"DD/MM/YYYY\").format(\n \"YYYY-MM-DD\",\n )}\n data-slots={listMeeting[listMeeting.length - 1].slot}\n data-opening_hour={\n listMeeting[listMeeting.length - 1].opening_hour_id\n }\n data-start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n data-value_start={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[0]\n }\n data-value_end={\n listMeeting[listMeeting.length - 1].slot.split(\"-\")[1]\n }\n disabled={noAvailableSlot}\n >\n {listMeeting[listMeeting.length - 1].slot}\n </button>\n </div>\n </div>\n </div>\n ) : null}\n <div>\n {selectedData && listMeeting.length >= 1 ? (\n <h6>{i18next.t(\"Seleziona altri orari\")}</h6>\n ) : noAvailableSlot ? null : (\n <h6>\n {i18next.t(\"Orari disponibili del\")} {dayjs(selectedData).format('DD/MM/YYYY')}\n </h6>\n )}\n </div>\n {daysSlot.map((slot, index) => (\n <div className=\"col-6\" key={\"slot-\" + index}>\n <button\n type=\"button\"\n id={\"slot-\" + index}\n onClick={onClickSelectDate}\n ref={refButtonSlot}\n className={\n activeSlot === \"slot-\" + index\n ? \"active btn btn-slot p-0\"\n : \"btn btn-slot p-0\"\n }\n tabIndex=\"1\"\n data-date={slot.date}\n data-start={slot.start_time}\n data-end={slot.end_time}\n data-value_start={slot.start_time}\n data-value_end={slot.end_time}\n data-slots={slot.start_time + \"-\" + slot.end_time}\n data-opening_hour={slot.opening_hour}\n data-min_duration={slot.min_duration}\n disabled={slot.slots_available == 0}\n >\n {slot.start_time} - {slot.end_time}\n </button>\n </div>\n ))}\n {noAvailableSlot ? (\n <div className=\"callout callout-highlight warning\">\n <div className=\"callout-title\">\n <Icon aria-hidden icon=\"it-help-circle\" />\n {i18next.t(\"Attenzione\")}\n </div>\n <p>\n {\" \"}\n {i18next.t(\n \"Non è possibile prenotare per la data selezionata\",\n )}\n .\n </p>\n </div>\n ) : null}\n </div>\n </ModalBody>\n\n <ModalFooter>\n <Button\n color=\"primary\"\n onClick={() => handleConfirmMeeting()}\n disabled={!selectedData || !slotSelected?.value_start}\n >\n {i18next.t(\"Conferma\")}\n </Button>\n </ModalFooter>\n </Modal>\n </>\n );\n};\n\nexport default class FormioDynamicCalendar extends Field {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Calendar\",\n group: \"basic\",\n icon: \"bi bi-calendar-plus\",\n documentation: \"\",\n weight: 70,\n schema: FormioDynamicCalendar.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return Field.schema({\n type: \"calendar\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attach(element) {\n return super.attach(element).then(() => {\n this.loadRefs(this.element, {\n [`react-${this.id}`]: \"single\",\n });\n\n const reactRoot = this.refs[`react-${this.id}`];\n if (!reactRoot) {\n return this;\n }\n\n this.rootComponent = createRoot(reactRoot);\n this.rootComponent.render(\n <ReactDynamicCalendar\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />,\n );\n\n return this;\n });\n }\n\n detach() {\n if (this.rootComponent) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n\n return super.detach();\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n\n if (Array.isArray(value)) {\n this.selectedNextSlots = value;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else if (typeof value === \"object\") {\n this.date = value.date;\n this.slot = value.slot;\n this.meeting = value.meeting_id;\n this.meeting_expiration_time = null;\n this.opening_hour = value.opening_hour_id;\n this.calendar_id = value.calendar_id;\n\n this.updateValue(value);\n this.shouldSetValue = true;\n } else {\n let explodedValue = value\n .replace(\")\", \"\")\n .replace(\" (\", \" @ \")\n .replace(/\\//g, \"-\")\n .split(\" @ \");\n let explodedCalendar = explodedValue[2].split(\"#\");\n\n this.date = explodedValue[0];\n this.slot = explodedValue[1];\n this.meeting = explodedCalendar[1];\n this.meeting_expiration_time = null;\n this.opening_hour =\n explodedCalendar.length === 3 ? explodedCalendar[2] : \"\";\n\n this.updateValue({\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: this.meeting,\n opening_hour_id: this.opening_hour,\n });\n }\n }\n\n getValue() {\n if (\n !(this.date && this.slot && this.meeting && this.opening_hour) &&\n !(this.selectedNextSlots && this.selectedNextSlots.length > 0)\n ) {\n // Unset value (needed for calendars with 'required' option\"\n return null;\n }\n let meeting_id = this.meeting ? this.meeting : \"\";\n let opening_hour = this.opening_hour ? this.opening_hour : \"\";\n\n if (this.component.multiple) {\n return this.selectedNextSlots;\n }\n\n return {\n date: this.date,\n slot: this.slot,\n calendar_id: this.calendar_id,\n meeting_id: meeting_id,\n opening_hour_id: opening_hour,\n };\n\n /* return `${this.date.replace(/-/g, \"/\")} @ ${this.slot} (${\n this.component.calendarId\n }#${meeting_id}#${opening_hour})`;*/\n // return super.getValue();\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n}\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n }\n];\n","import { Components } from \"@formio/react\";\nimport CalendarAdvancedEdit from \"./CalendarAdvanced.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: CalendarAdvancedEdit,\n },\n ],\n ...extend,\n );\n}\n","import React from \"react\";\n\nfunction SlotSelected({ day, slot, i18next }) {\n return (\n <li className=\"it-list-item\">\n <div className=\"list-item\">\n <div className=\"it-right-zone\">\n <span className=\"text-paragraph pl-4\">\n <b>{day}</b> {i18next.t(\"alle\")} {i18next.t(\"ore\")} <b>{slot}</b>\n </span>\n </div>\n </div>\n </li>\n );\n}\n\nexport default SlotSelected;\n","export function adjustSlotHeight(calendar, events) {\n if (!events || events.length === 0) return;\n\n // Calcola la durata di ogni evento (in minuti)\n const durations = events.map((e) => {\n const start = new Date(e.start);\n const end = new Date(e.end);\n return (end - start) / 60000; // minuti\n });\n\n const minDuration = Math.min(...durations);\n const avgDuration = durations.reduce((a, b) => a + b, 0) / durations.length;\n\n let dynamicHeight = 0;\n\n if (minDuration <= 30 && minDuration > 15) {\n dynamicHeight = avgDuration * 1; // 12px al minuto\n } else if (minDuration <= 15) {\n // Se ci sono slot molto brevi (<= 15 min), aumentiamo l'altezza minima\n dynamicHeight = avgDuration * 24; // 24px al minuto\n } else {\n // Altezza base calcolata sull'avgDuration\n dynamicHeight = avgDuration * 4; // px al minuto\n }\n\n // Aggiorna FullCalendar\n calendar.setOption(\"slotHeight\", dynamicHeight);\n\n // Aggiorna variabile CSS\n document.documentElement.style.setProperty(\n \"--slot-height\",\n `${dynamicHeight}px`\n );\n}\n","import dayjs from \"dayjs\";\n\n// Configurazione cache\nconst CACHE_CONFIG = {\n AVAILABILITY: {\n key: \"availability_data_cache_\",\n duration: 10, // minuti\n },\n SLOTS: {\n key: \"availability_slots_cache_\",\n duration: 10, // minuti\n },\n SUBMISSION: {\n key: \"submission_cache_\",\n duration: 30, // minuti\n }\n};\n\n// 🔑 Funzione generica di cache\nexport const setCachedData = (type, cacheKey, data) => {\n const cacheData = {\n data,\n timestamp: dayjs().toISOString(),\n };\n sessionStorage.setItem(cacheKey, JSON.stringify(cacheData));\n console.log(`✅ Cache salvato: ${type}`);\n};\n\n// 🔑 Funzione generica per leggere il cache\nexport const getCachedData = (type, cacheKey) => {\n try {\n const cached = sessionStorage.getItem(cacheKey);\n\n if (!cached) return null;\n\n const parsedCache = JSON.parse(cached);\n const cacheAge = dayjs().diff(\n dayjs(parsedCache.timestamp),\n \"minutes\"\n );\n\n if (cacheAge > CACHE_CONFIG[type].duration) {\n sessionStorage.removeItem(cacheKey);\n console.log(`⏰ Cache scaduto: ${type}`);\n return null;\n }\n\n console.log(`✅ Cache letto: ${type} (${cacheAge} minuti fa)`);\n return parsedCache.data;\n } catch (error) {\n console.error(`Errore nel leggere il cache (${type}):`, error);\n return null;\n }\n};\n\n// 🔑 Genera chiave di cache\nexport const generateCacheKey = (type, ...params) => {\n return CACHE_CONFIG[type].key + btoa(params);\n};\n\n\n// 🔑 Costanti per sessionStorage\nconst CALENDAR_VIEW_STATE_KEY = \"calendar_view_state\";\nconst CALENDAR_VIEW_DATE_KEY = \"calendar_view_date\";\n\n// 🔑 Helper per salvare/leggere lo stato della view\nexport const saveCalendarViewState = (viewType, date) => {\n try {\n sessionStorage.setItem(CALENDAR_VIEW_STATE_KEY, viewType);\n sessionStorage.setItem(CALENDAR_VIEW_DATE_KEY, date || new Date().toISOString());\n } catch (error) {\n console.error(\"Errore nel salvare lo stato della view:\", error);\n }\n};\n\nexport const getCalendarViewState = () => {\n try {\n const viewType = sessionStorage.getItem(CALENDAR_VIEW_STATE_KEY);\n const date = sessionStorage.getItem(CALENDAR_VIEW_DATE_KEY);\n return {\n viewType: viewType || \"timeGridWeek\",\n date: date ? new Date(date) : new Date(),\n };\n } catch (error) {\n console.error(\"Errore nel leggere lo stato della view:\", error);\n return {\n viewType: \"timeGridWeek\",\n date: new Date(),\n };\n }\n};\n\nexport const clearCalendarViewState = () => {\n try {\n sessionStorage.removeItem(CALENDAR_VIEW_STATE_KEY);\n sessionStorage.removeItem(CALENDAR_VIEW_DATE_KEY);\n } catch (error) {\n console.error(\"Errore nel pulire lo stato della view:\", error);\n }\n};\n\nexport const clearAvailabilityCache = () => {\n try {\n Object.keys(sessionStorage).forEach((key) => {\n if (\n key.startsWith(\"availability_data_cache_\") ||\n key.startsWith(\"availability_slots_cache_\") || \n key.startsWith(\"submission_cache_\")\n ) {\n sessionStorage.removeItem(key);\n }\n });\n } catch (error) {\n console.error(\"Errore nel pulire il cache disponibilita:\", error);\n }\n};\n\n\nexport const clearSlotCache = () => {\n try {\n Object.keys(sessionStorage).forEach((key) => {\n if (\n key.startsWith(\"availability_slots_cache_\")\n ) {\n sessionStorage.removeItem(key);\n }\n });\n } catch (error) {\n console.error(\"Errore nel pulire il cache disponibilita:\", error);\n }\n};\n","import editForm from \"./CalendarAdvanced.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport moment from \"moment\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport Swal from \"sweetalert2\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport SlotSelected from \"./SlotSelected\";\nimport dayjs from \"dayjs\";\nimport { createCalendar, TimeGrid } from \"@event-calendar/core\";\nimport { adjustSlotHeight } from \"../../functions/adjustSlotHeight\";\nimport { Select, Spinner } from \"design-react-kit\";\nimport {\n clearCalendarViewState,\n generateCacheKey,\n getCachedData,\n getCalendarViewState,\n saveCalendarViewState,\n setCachedData,\n} from \"./calendarUtility\";\n\nconst Field = Formio.Components.components.field;\n\nexport const ReactCalendarAdvanced = ({\n component,\n current,\n onChange,\n i18next,\n}) => {\n //Date disponibili del mese selezionato\n const [availableDate, setAvailableDate] = useState(null);\n // Dato caledario sola lettura\n const [renderData, setRenderData] = useState(null);\n\n //Lista meeting\n const [listMeeting, setListMeeting] = useState([]);\n\n const [isLoading, setIsLoading] = useState(false);\n\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n\n const [selectedBooking, setSelectedBooking] = useState(null);\n\n // Opzioni mese/anno per select\n const [monthYearOptions, setMonthYearOptions] = useState([]);\n const [daysOptions, setDaysOptions] = useState([]);\n const [slotsOptions, setSlotsOptions] = useState([]);\n\n //Opzioni selezionate\n const [selectedMonth, setSelectedMonth] = useState(null);\n const [selectedDay, setSelectedDay] = useState(null);\n const [selectedSlot, setSelectedSlot] = useState(null);\n\n const calendarRef = useRef(null);\n const calendarEc = useRef(null);\n\n const language = i18next.language;\n\n moment.locale(i18next.language);\n dayjs.locale(i18next.language);\n\n function getTimeRange(availabilities) {\n if (!availabilities || availabilities.length === 0) return null;\n\n const times = availabilities.map((item) => ({\n start: item.start_time,\n end: item.end_time,\n }));\n\n const minStart = times.reduce(\n (min, t) => (t.start < min ? t.start : min),\n times[0].start\n );\n const maxEnd = times.reduce(\n (max, t) => (t.end > max ? t.end : max),\n times[0].end\n );\n\n return {\n earliestStartTime: minStart,\n latestEndTime: maxEnd,\n };\n }\n\n function getHiddenDays(events) {\n const availableDays = events.map((item) => moment(item.date).isoWeekday());\n\n // Calcola tutti i giorni della settimana (1 = lunedì, ..., 7 = domenica)\n const allDays = [1, 2, 3, 4, 5, 6, 7];\n\n // Trova i giorni mancanti\n const missingDays = allDays.filter((day) => !availableDays.includes(day));\n\n //console.log('Giorni disponibili:', availableDays); // ad esempio: [4] (giovedì)\n //console.log('Giorni mancanti:', missingDays); // [1, 2, 3, 5, 6, 7]\n if (missingDays.length > 0) {\n calendarEc.current.setOption(\"hiddenDays\", missingDays);\n } else {\n calendarEc.current.setOption(\"hiddenDays\", []);\n }\n }\n\n function buildAvailabilityUrl(originalUrl, startDate, endDate) {\n const url = new URL(originalUrl);\n const pathnameParts = url.pathname.split(\"/\");\n\n // Inserisce le date nella posizione corretta\n const newPathname = `${pathnameParts.slice(0, 4).join(\"/\")}/${startDate}/${endDate}`;\n\n return `${url.origin}${newPathname}${url.search}`;\n }\n\n function buildAvailabilityUrlLongTerms(originalUrl, startDate, endDate) {\n const url = new URL(originalUrl);\n const pathnameParts = url.pathname.split(\"/\");\n\n // Inserisce le date nella posizione corretta\n const newPathname = `${pathnameParts.slice(0, 4).join(\"/\")}`;\n\n return `${url.origin}${newPathname}${url.search}&from_to=${startDate}&to_date=${endDate}`;\n }\n\n function calculateAvailabilityLink(startDate, endDate, calendarID) {\n const basepath = baseUrl();\n return `${basepath}/api/availabilities/${startDate}/${endDate}?calendar_ids=${calendarID}&available=true`;\n }\n\n const handleChangeMonthYear = (date) => {\n setSlotsOptions([]);\n setDaysOptions([]);\n onChange({});\n if (date) {\n setDaysOptions(\n availableDate.filter((item) => item.date.startsWith(date))\n );\n }\n };\n\n const handleChangeDay = async (e, type) => {\n const data = JSON.parse(e);\n // 🔑 Controlla il cache\n const cacheKey = generateCacheKey(\"SLOTS\", data.date, data.calendar_ids);\n if (type === \"manual\") {\n setSlotsOptions([]);\n setSelectedSlot(null);\n setSelectedBooking(null);\n onChange({});\n } else {\n const cachedSlots = getCachedData(\"SLOTS\", cacheKey);\n if (cachedSlots) {\n setSlotsOptions(cachedSlots);\n return;\n }\n }\n\n // Chiama l'API\n try {\n const availabilitySlots = await window.FormioHelper.anonymousCall(\n `availabilities/${data.date}?calendar_ids=${data.calendar_ids}`\n );\n\n // 🔑 Salva nel cache\n setCachedData(\"SLOTS\", cacheKey, availabilitySlots.data);\n setSlotsOptions(availabilitySlots.data);\n } catch (error) {\n console.error(\"Errore nel caricamento degli slot:\", error);\n Swal.fire({\n icon: \"error\",\n title: i18next.t(\"Errore\"),\n text: i18next.t(\"Errore nel caricamento degli orari\"),\n });\n }\n };\n\n const handleChangeSlot = (data) => {\n const meet = JSON.parse(data);\n\n const dataMeet = {\n status: 6,\n calendar: meet.calendar_id,\n opening_hour: meet.opening_hour_id,\n user: null,\n email: null,\n fiscal_code: null,\n name: \" \",\n phone_number: null,\n from_time: dayjs(`${meet.date}T${meet.start_time}`).toISOString(),\n to_time: dayjs(`${meet.date}T${meet.end_time}`).toISOString(),\n user_message: null,\n reason: null,\n location: null,\n motivation_outcome: null,\n calendar_group_config_id: current?.data?.service_data?.id,\n calendar_group_office_id: current?.data?.user_group?.id,\n calendar_group_place_id: current?.data?.place?.id,\n };\n\n window.FormioHelper.authenticatedRequest(\n current?.dataValue?.id ? \"PATCH\" : \"POST\",\n current?.dataValue?.id ? `meetings/${current.dataValue.id}` : \"meetings\",\n dataMeet\n )\n .then((response) => {\n setSelectedBooking({\n day: dayjs(meet.date).format(\"dddd, DD MMMM YYYY\"),\n startDate: meet.start_time,\n endDate: meet.end_time,\n });\n onChange(response?.id ? response : response? {...response, id: current.dataValue.id} : current.dataValue.id ? { ...dataMeet, id: current.dataValue.id } : { ...dataMeet });\n })\n .catch((e) => {\n console.error(e);\n if (\n e.status === 400 &&\n e?.response?.data?.type === \"validation_error\"\n ) {\n Swal.fire({\n title: \"\",\n html:\n \"<p>\" +\n i18next.t(\n \"Lo slot orario selezionato non è disponibile perché già prenotato Seleziona un altro orario o una data diversa\",\n ) +\n \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n }\n //onChange({});\n });\n };\n\n const getMonthYearOptions = (items) => {\n const set = new Set();\n const options = [];\n\n items.forEach((item) => {\n const d = dayjs(item.date);\n const key = d.format(\"YYYY-MM\");\n\n if (!set.has(key)) {\n set.add(key);\n\n options.push({\n value: key,\n label: d.format(\"MMMM YYYY\").replace(/^\\w/, (c) => c.toUpperCase()),\n });\n }\n });\n\n return options;\n };\n\n const fetchAvailabilityEventsSelect = async () => {\n const url = current?.root?.data?.place?.merge_availabilities\n ? current?.root?.data?.place?.merged_availabilities_link\n : null;\n\n const calendarRangeStart = moment().format(\"YYYY-MM-DD\");\n // Recupera disponibilità per i successivi 1 mesi\n const calendarRangeEnd = moment().add(1, \"month\").format(\"YYYY-MM-DD\");\n const calendarID = current?.root?.data?.place?.calendars[0]?.id || null;\n\n const calculatedUrl = url\n ? buildAvailabilityUrlLongTerms(url, calendarRangeStart, calendarRangeEnd)\n : calculateAvailabilityLink(\n calendarRangeStart,\n calendarRangeEnd,\n calendarID\n );\n\n // 🔑 Controlla il cache\n const cacheKey = generateCacheKey(\"AVAILABILITY\", calculatedUrl);\n const cachedData = getCachedData(\"AVAILABILITY\", cacheKey);\n\n if (cachedData) {\n setAvailableDate(cachedData);\n setMonthYearOptions(getMonthYearOptions(cachedData));\n return;\n } else {\n onChange({});\n }\n\n // Se non c'è cache, chiama l'API\n setIsLoading(true);\n try {\n const availabilityData =\n await window.FormioHelper.fetchAPIUrlLimit(calculatedUrl);\n setIsLoading(false);\n\n if (!availabilityData?.length) {\n Swal.fire({\n icon: \"warning\",\n title: i18next.t(\"warning\"),\n html: i18next.t(\"no_meetings\"),\n });\n return;\n }\n\n // 🔑 Salva nel cache\n setCachedData(\"AVAILABILITY\", cacheKey, availabilityData);\n\n setAvailableDate(availabilityData);\n setMonthYearOptions(getMonthYearOptions(availabilityData));\n } catch (error) {\n setIsLoading(false);\n console.error(\"Errore nel caricamento disponibilità:\", error);\n }\n };\n\n // Se ho selezionato il mese in precedenza lo ripopolo\n useEffect(() => {\n if (availableDate?.length) {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (\n savedValue?.from_time &&\n savedValue?.to_time &&\n !dayjs().isAfter(savedValue?.draft_expiration)\n ) {\n const monthKey = dayjs(savedValue.from_time).format(\"YYYY-MM\");\n setSelectedMonth(monthKey);\n\n // Simula la selezione del mese\n if (monthKey && setDaysOptions) {\n setDaysOptions(\n availableDate.filter((item) => item.date.startsWith(monthKey))\n );\n setSelectedDay(dayjs(savedValue.from_time).format(\"YYYY-MM-DD\"));\n }\n } else if (\n savedValue?.draft_expiration &&\n dayjs().isAfter(savedValue?.draft_expiration)\n ) {\n //Bozza scaduta riselezionare tutto l'appuntamento\n Swal.fire({\n icon: \"warning\",\n title: i18next.t(\"warning\"),\n html: i18next.t(\"expired_meeting\"),\n });\n }\n }\n }, [availableDate]);\n\n useEffect(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (!monthYearOptions.length || selectedMonth) return;\n if (savedValue?.from_time || savedValue?.to_time) return;\n\n const first = monthYearOptions[0];\n if (!first) return;\n setSelectedMonth(first.value);\n handleChangeMonthYear(first.value);\n }, [monthYearOptions, selectedMonth, current?.dataValue]);\n\n useEffect(() => {\n if (selectedDay && renderDataReadOnly === false) {\n const savedValue = current?.dataValue ?? current?.getValue();\n handleChangeDay(\n JSON.stringify({\n date: selectedDay,\n calendar_ids: savedValue.calendar.id,\n })\n );\n }\n }, [selectedDay]);\n\n const getResponsiveView = () =>\n window.innerWidth > 768 ? \"timeGridWeek\" : \"timeGridDay\";\n\n useEffect(() => {\n const handleResize = () => {\n const calendar = calendarEc.current;\n if (!calendar) return;\n\n const newView = getResponsiveView();\n const currentView = calendar.getView().type;\n\n if (newView !== currentView) {\n calendar.setOption(\"view\", newView);\n }\n };\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (slotsOptions?.length && savedValue?.from_time) {\n setSelectedSlot(\n dayjs(savedValue.from_time).format(\"HH:mm\") +\n \" - \" +\n dayjs(savedValue.to_time).format(\"HH:mm\")\n );\n setSelectedBooking({\n day: dayjs(savedValue.from_time).format(\"dddd D MMM YYYY\"),\n startDate: dayjs(savedValue.from_time).format(\"HH:mm\"),\n endDate: dayjs(savedValue.to_time).format(\"HH:mm\"),\n });\n }\n }, [slotsOptions]);\n\n const renderViewCalendar = () => {\n // 🔑 Leggi lo stato salvato della view\n const viewState = getCalendarViewState();\n // ✅ Crea il calendario\n calendarEc.current = createCalendar(calendarRef.current, [TimeGrid], {\n events: [],\n buttonText: {\n today: i18next.t(\"Oggi\"),\n },\n allDaySlot: false,\n firstDay: 1,\n date: viewState.date, // 🔑 Ripristina la data\n slotEventOverlap: false,\n view: getResponsiveView(),\n height: \"400px\", // oppure '100%' o 'auto'\n views: {\n timeGridWeek: {\n allDaySlot: false,\n firstDay: 1,\n slotHeight: 48,\n },\n timeGridDay: {\n allDaySlot: false,\n firstDay: 1,\n slotHeight: 48,\n },\n },\n datesSet: (view) => {\n // Salva la view (week/day) e la data di inizio\n saveCalendarViewState(view.view.type, view.start);\n },\n eventClick({ event, el }) {\n document.querySelectorAll(\".ec-event\").forEach((e) => {\n e.classList.remove(\"highlighted-event\");\n });\n el.classList.add(\"highlighted-event\");\n\n const start = new Date(event.start);\n const end = new Date(event.end);\n\n const day = start.toLocaleDateString(\"it-IT\", {\n weekday: \"long\",\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n });\n const startDate = start.toLocaleTimeString(\"it-IT\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n const endDate = end.toLocaleTimeString(\"it-IT\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n\n const dataMeet = {\n status: 6,\n calendar: event.extendedProps.calendar_id,\n opening_hour: event.extendedProps.opening_hour_id,\n user: null,\n email: null,\n fiscal_code: null,\n name: \" \",\n phone_number: null,\n from_time: start,\n to_time: end,\n user_message: null,\n reason: null,\n location: null,\n motivation_outcome: null,\n calendar_group_config_id: current?.data?.service_data?.id,\n calendar_group_office_id: current?.data?.user_group?.id,\n calendar_group_place_id: current?.data?.place?.id,\n };\n window.FormioHelper.authenticatedRequest(\n current?.dataValue?.id ? \"PATCH\" : \"POST\",\n current?.dataValue?.id\n ? `meetings/${current.dataValue.id}`\n : \"meetings\",\n dataMeet\n )\n .then((response) => {\n let meetingData;\n\n if (!response || response === \"\") {\n // Se è vuoto, usa il dataMeet con l'ID che avevi\n meetingData = {\n ...dataMeet,\n code: null,\n id: current?.dataValue?.id,\n };\n } else if (typeof response === \"object\") {\n // Se è un oggetto, usalo direttamente\n meetingData = response;\n }\n\n setSelectedBooking({\n day: day,\n startDate: startDate,\n endDate: endDate,\n });\n\n onChange(meetingData);\n })\n .catch((e) => {\n console.error(e);\n if (\n e.status === 400 &&\n e?.response?.data?.type === \"validation_error\"\n ) {\n Swal.fire({\n title: \"\",\n html:\n \"<p>\" +\n i18next.t(\n \"Lo slot orario selezionato non è disponibile perché già prenotato Seleziona un altro orario o una data diversa\",\n ) +\n \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n Swal.fire({\n title: \"\",\n html: \"<p>\" + e + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n }\n \n //onChange({});\n });\n },\n viewDidMount: handleViewChange,\n eventDidMount: (info) => {\n const { event, el } = info;\n const props = event.extendedProps;\n el.setAttribute(\n \"data-event-id\",\n event.id + \"-\" + props.date + \"-\" + props.start_time\n );\n },\n loading: (isLoading) => {\n setIsLoading(isLoading);\n },\n });\n };\n\n const handleViewChange = (args) => {\n //console.log('View changed to:', args.view);\n // ✅ Se esiste un office, carica i dati\n if (current?.root?.data?.place) {\n calendarEc.current.setOption(\"eventSources\", [\n {\n events: fetchAvailabilityEvents,\n },\n ]);\n }\n };\n\n // ✅ Estraggo la logica di fetch eventi in una funzione separata\n async function fetchAvailabilityEvents(\n view,\n successCallback,\n failureCallback\n ) {\n try {\n calendarEc.current.setOption(\"events\", []);\n\n const calendarRangeStart = moment(view.start).format(\"YYYY-MM-DD\");\n const endWeek = new Date(view.end);\n endWeek.setDate(endWeek.getDate() - 1);\n const calendarRangeEnd = moment(endWeek).format(\"YYYY-MM-DD\");\n\n const calendarID = null;\n const url = current?.root?.data?.place?.merge_availabilities\n ? current?.root?.data?.place?.merged_availabilities_link\n : null;\n\n const calculatedUrl = url\n ? buildAvailabilityUrl(url, calendarRangeStart, calendarRangeEnd)\n : calculateAvailabilityLink(\n calendarRangeStart,\n calendarRangeEnd,\n calendarID\n );\n\n // 🔑 Controlla il cache\n const cacheKey = generateCacheKey(\"AVAILABILITY\", calculatedUrl);\n const cachedData = getCachedData(\"AVAILABILITY\", cacheKey);\n\n let availabilityData;\n if (cachedData) {\n availabilityData = cachedData;\n setIsLoading(false);\n } else {\n // onChange({});\n availabilityData =\n await window.FormioHelper.fetchAPIUrlLimit(calculatedUrl);\n setCachedData(\"AVAILABILITY\", cacheKey, availabilityData);\n }\n if (!availabilityData?.length) {\n successCallback([]);\n Swal.fire({\n icon: \"warning\",\n title: i18next.t(\"warning\"),\n html: i18next.t(\"no_meetings\"),\n });\n return;\n }\n // ✅ Calcola eventi\n const events = availabilityData.map((slot) => ({\n id: slot.opening_hour_id,\n allDay: false,\n start: `${slot.date}T${slot.start_time}:00`,\n end: `${slot.date}T${slot.end_time}:00`,\n title: `${slot.start_time} - ${slot.end_time}`,\n editable: false,\n display: \"auto\",\n color: \"#ebeef0\",\n textColor: \"#000\",\n className: \"event-slot\",\n extendedProps: {\n ...slot,\n },\n }));\n\n // ✅ Imposta limiti orari e giorni nascosti\n const timeRange = getTimeRange(availabilityData);\n calendarEc.current.setOption(\"slotMinTime\", timeRange.earliestStartTime);\n calendarEc.current.setOption(\"slotMaxTime\", timeRange.latestEndTime);\n getHiddenDays(availabilityData);\n adjustSlotHeight(calendarEc.current, events);\n successCallback(events);\n // Dopo che gli eventi sono stati renderizzati, evidenzio l'evento salvato\n setTimeout(() => {\n highlightSavedSlot(events);\n }, 500);\n } catch (err) {\n console.error(\"Errore nel caricamento disponibilità:\", err);\n failureCallback?.(err);\n }\n }\n\n useEffect(() => {\n let timerId;\n let destroyed = false;\n\n async function initCalendar() {\n try {\n await window.FormioInstance?.formReady;\n\n if (destroyed) return;\n\n if (!calendarRef.current) {\n console.warn(\"Elemento calendario non trovato\");\n return;\n }\n\n // 🔑 Controlla se esiste una bozza di un appuntamento e se scaduta resetto\n const savedValue = current?.dataValue ?? current?.getValue();\n if (savedValue && savedValue?.draft_expiration) {\n const isExpired = dayjs().isAfter(savedValue.draft_expiration);\n if (isExpired) {\n onChange({});\n clearCalendarViewState();\n }\n }\n\n if (current?.data?.service_data?.view_type === \"calendar\") {\n if (!calendarEc?.current) {\n renderViewCalendar();\n }\n } else if (current?.data?.service_data?.view_type === \"select\") {\n fetchAvailabilityEventsSelect();\n } else {\n alert(\n i18next.t(\n \"Il componente non è configurato per la visualizzazione a calendario\"\n )\n );\n }\n } catch (err) {\n console.error(\"Errore durante l'inizializzazione del calendario:\", err);\n }\n }\n\n // ✅ Usa un leggero delay solo se serve, ma controllato\n timerId = setTimeout(initCalendar, 500);\n\n // ✅ Cleanup completo\n return () => {\n destroyed = true;\n if (timerId) clearTimeout(timerId);\n if (calendarEc.current) {\n calendarRef.current?.destroy?.();\n calendarEc.current = null;\n }\n };\n }, [current?.root?.data?.place]);\n\n function highlightSavedSlot(events) {\n const saved = current?.dataValue;\n\n if (!saved?.from_time) return;\n\n const savedStart = dayjs(saved.from_time).format(\"DD-MM-YYYY HH:mm\");\n const savedEnd = dayjs(saved.to_time).format(\"DD-MM-YYYY HH:mm\");\n\n const eventToHighlight = events.find(\n (ev) =>\n dayjs(ev.start).format(\"DD-MM-YYYY HH:mm\") === savedStart &&\n dayjs(ev.end).format(\"DD-MM-YYYY HH:mm\") === savedEnd\n );\n\n if (!eventToHighlight) return;\n const el = document.querySelector(\n `.ec-event[data-event-id=\"${eventToHighlight.id}-${dayjs(saved?.from_time).format(\"YYYY-MM-DD\")}-${dayjs(saved?.from_time).format(\"HH:mm\")}\"]`\n );\n\n if (el) {\n el.classList.add(\"highlighted-event\");\n el.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n setSelectedBooking({\n day: dayjs(saved?.from_time).format(\"dddd, DD MMMM YYYY\"),\n startDate: dayjs(saved?.from_time).format(\"HH:mm\"),\n endDate: dayjs(saved?.to_time).format(\"HH:mm\"),\n });\n }\n }\n\n const renderSummary = ({ day, startDate, endDate }) => {\n return (\n <div className=\"mt-3\">\n <div className=\"row align-items-center gy-3\">\n <div className=\"col-12 col-md border-light mx-md-3\">\n <div className=\"text-paragraph-small\">{i18next.t(\"Data\")}</div>\n <p className=\"data-text\">\n <strong>{day}</strong>\n </p>\n </div>\n\n <div className=\"col-12 col-md border-light mx-md-3\">\n <div className=\"text-paragraph-small\">{i18next.t(\"Ora\")}</div>\n <p className=\"data-text\">\n <strong>\n {startDate} - {endDate}\n </strong>\n </p>\n </div>\n </div>\n </div>\n );\n };\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n } else {\n if (current?.data?.service_data?.view_type === \"select\") {\n fetchAvailabilityEventsSelect();\n } else if (current?.data?.service_data?.view_type === \"calendar\") {\n renderViewCalendar();\n }\n setRenderDataReadOnly(false);\n }\n }, []);\n\n useEffect(() => {\n if (renderDataReadOnly) {\n setTimeout(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n console.log(\"savedValue\", savedValue, renderDataReadOnly);\n if (savedValue) {\n setRenderData(savedValue);\n }\n }, 500);\n }\n }, [renderDataReadOnly]);\n\n const removeItem = (index, meeting) => {\n let url = `${baseUrl()}/api/meetings/${meeting.meeting_id}`;\n\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n }).then((response) => {\n if (response && response.status > 400) {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante la cancellazione dello slot\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else {\n const newArray = [\n ...listMeeting.slice(0, index),\n ...listMeeting.slice(index + 1),\n ];\n setListMeeting(newArray);\n calculateAvailableDates(new Date());\n }\n });\n };\n\n return (\n <>\n {renderDataReadOnly && renderData ? (\n <div className=\"mx-2\">\n <p className=\"text-paragraph\">\n {i18next.t(\"Giorno selezionato per la prenotazione\")}:\n </p>\n <div className=\"\">\n <div className=\"it-list-wrapper\">\n <ul className=\"it-list\">\n <SlotSelected\n day={dayjs(renderData.from_time).format(\"dddd D MMM YYYY\")}\n i18next={i18next}\n slot={`${dayjs(renderData.from_time).format(\"HH:mm\")} - ${dayjs(renderData.to_time).format(\"HH:mm\")}`}\n ></SlotSelected>\n </ul>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"\">\n <div ref={calendarRef}></div>\n {monthYearOptions.length > 0 ? (\n <>\n <Select\n label=\"Mese\"\n id=\"selectMonthYear\"\n onChange={handleChangeMonthYear}\n >\n <option value=\"\">{i18next.t(\"Scegli un'opzione\")}</option>\n {monthYearOptions.map((option) => (\n <option\n key={option.value}\n value={option.value}\n selected={option.value === selectedMonth}\n >\n {option.label}\n </option>\n ))}\n </Select>\n\n <Select\n label=\"Giorno\"\n id=\"selectDay\"\n onChange={(e) => handleChangeDay(e, \"manual\")}\n disabled={daysOptions.length === 0}\n >\n <option value=\"\">{i18next.t(\"Scegli un'opzione\")}</option>\n {daysOptions.map((option) => (\n <option\n key={option.date}\n value={JSON.stringify(option)}\n selected={option.date === selectedDay}\n >\n {dayjs(option.date).format(\"dddd,DD MMMM YYYY\")}\n </option>\n ))}\n </Select>\n <Select\n label=\"Orario\"\n id=\"selectSlot\"\n onChange={handleChangeSlot}\n disabled={slotsOptions.length === 0}\n >\n <option value=\"\">{i18next.t(\"Scegli un'opzione\")}</option>\n {slotsOptions.map((option) => (\n <option\n key={option.start_time + \" - \" + option.end_time}\n value={JSON.stringify(option)}\n selected={\n option.start_time + \" - \" + option.end_time ===\n selectedSlot\n }\n >\n {option.start_time + \" - \" + option.end_time}\n </option>\n ))}\n </Select>\n </>\n ) : null}\n {selectedBooking\n ? renderSummary({\n day: selectedBooking.day,\n startDate: selectedBooking.startDate,\n endDate: selectedBooking.endDate,\n })\n : null}\n {isLoading ? (\n <div className=\"d-flex align-items-center justify-content-center position-absolute-center\">\n <Spinner active></Spinner>\n </div>\n ) : null}\n </div>\n )}\n </>\n );\n};\n\nexport default class FormioCalendarAdvanced extends Field {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Calendar Advanced\",\n group: \"basic\",\n icon: \"bi bi-calendar-plus\",\n documentation: \"\",\n weight: 70,\n schema: FormioCalendarAdvanced.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return Field.schema({\n type: \"calendar-advanced\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attach(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactCalendarAdvanced\n ref={ref}\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />\n );\n }\n\n setValue(value) {\n if (!value) {\n return;\n }\n this.updateValue(value);\n this.shouldSetValue = true;\n }\n\n getValue() {\n return this.dataValue;\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n}\n","export default [\n {\n key: \"defaultValue\",\n ignore: true,\n },\n];\n","export default [\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n type: \"checkbox\",\n label: \"Files Synchronization feature\",\n tooltip:\n \"Enable ability to control files synchronization. Files will be auto synced before submit.\",\n key: \"autoSync\",\n input: true,\n conditional: {\n json: {\n in: [\n {\n var: \"data.storage\",\n },\n [\"s3\", \"azure\", \"googledrive\"],\n ],\n },\n },\n },\n];\n","export default [\n {\n type: \"select\",\n input: true,\n key: \"storage\",\n label: \"Storage\",\n placeholder: \"Select your file storage provider\",\n weight: 0,\n tooltip: \"Which storage to save the files in.\",\n valueProperty: \"value\",\n dataSrc: \"custom\",\n hidden: true,\n data: {\n custom: function custom() {\n return [\n {\n label: \"url\",\n value: \"url\",\n },\n ];\n },\n },\n },\n {\n type: \"checkbox\",\n input: true,\n defaultValue: true,\n key: \"protocol_required\",\n label: \"Richiede protocollazione?\",\n tooltip: \"\",\n weight: 10,\n },\n {\n type: \"checkbox\",\n input: true,\n defaultValue: false,\n key: \"check_signature\",\n label: \"Effettuare il controllo della firma?\",\n tooltip: \"\",\n weight: 15,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"useMultipartUpload\",\n label: \"Use the S3 Multipart Upload API\",\n tooltip:\n \"The <a href='https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html'>S3 Multipart Upload API</a> is designed to improve the upload experience for larger objects (> 5GB).\",\n conditional: {\n json: { \"===\": [{ var: \"data.storage\" }, \"s3\"] },\n },\n },\n {\n label: \"Multipart Upload\",\n tableView: false,\n key: \"multipart\",\n type: \"container\",\n input: true,\n components: [\n {\n label: \"Part Size (MB)\",\n applyMaskOn: \"change\",\n mask: false,\n tableView: false,\n delimiter: false,\n requireDecimal: false,\n inputFormat: \"plain\",\n truncateMultipleSpaces: false,\n validate: {\n min: 5,\n max: 5000,\n },\n key: \"partSize\",\n type: \"number\",\n input: true,\n defaultValue: 500,\n },\n ],\n conditional: {\n json: { \"===\": [{ var: \"data.useMultipartUpload\" }, true] },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"options.indexeddb\",\n label: \"Database\",\n weight: 10,\n placeholder: \"Enter the indexeddb database name\",\n conditional: {\n json: {\n in: [\n {\n var: \"data.storage\",\n },\n [\"indexeddb\"],\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n label: \"Table\",\n key: \"options.indexeddbTable\",\n weight: 10,\n placeholder: \"Enter the name for indexeddb table\",\n conditional: {\n json: {\n in: [\n {\n var: \"data.storage\",\n },\n [\"indexeddb\"],\n ],\n },\n },\n },\n {\n type: \"textarea\",\n key: \"options\",\n label: \"Custom request options\",\n tooltip: \"Pass your custom xhr options(optional)\",\n rows: 5,\n editor: \"ace\",\n input: true,\n weight: 15,\n placeholder: `{\n \"withCredentials\": true,\n \"headers\": {\n \"Authorization\": \"Basic <key>\"\n }\n }`,\n conditional: {\n json: {\n \"===\": [\n {\n var: \"data.storage\",\n },\n \"url\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileKey\",\n label: \"File form-data key\",\n weight: 17,\n placeholder: \"Enter the key name of a file for form data.\",\n tooltip:\n \"Key name that you would like to modify for the file while calling API request.\",\n conditional: {\n json: {\n \"===\": [\n {\n var: \"data.storage\",\n },\n \"url\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"dir\",\n label: \"Directory\",\n placeholder: \"(optional) Enter a directory for the files\",\n tooltip:\n \"This will place all the files uploaded in this field in the directory\",\n weight: 20,\n conditional: {\n json: {\n \"!==\": [\n {\n var: \"data.storage\",\n },\n \"googledrive\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"dir\",\n label: \"Folder ID\",\n placeholder: \"(optional) Enter an ID of the folder for the files\",\n tooltip:\n \"This will place all the files uploaded in this field in the folder\",\n weight: 20,\n conditional: {\n json: {\n \"===\": [\n {\n var: \"data.storage\",\n },\n \"googledrive\",\n ],\n },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileNameTemplate\",\n label: \"File Name Template\",\n placeholder: '(optional) { {name} }-{ {guid} }\"',\n tooltip:\n \"Specify template for name of uploaded file(s). Regular template variables are available (`data`, `component`, `user`, `value`, `moment` etc.), also `fileName`, `guid` variables are available. `guid` part must be present, if not found in template, will be added at the end.\",\n weight: 25,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"image\",\n label: \"Display as image(s)\",\n tooltip:\n \"Instead of a list of linked files, images will be rendered in the view.\",\n weight: 30,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"uploadOnly\",\n label: \"Upload Only\",\n tooltip:\n \"When this is checked, will only allow you to upload file(s) and consequently the download, in this component, will be unavailable.\",\n weight: 33,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"privateDownload\",\n label: \"Private Download\",\n tooltip:\n \"When this is checked, the file download will send a POST request to the download URL with the x-jwt-token header. This will allow your endpoint to create a Private download system.\",\n weight: 31,\n conditional: {\n json: { \"===\": [{ var: \"data.storage\" }, \"url\"] },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"imageSize\",\n label: \"Image Size\",\n placeholder: \"100\",\n tooltip: \"The image size for previewing images.\",\n weight: 40,\n conditional: {\n json: { \"==\": [{ var: \"data.image\" }, true] },\n },\n },\n {\n type: \"textfield\",\n input: true,\n key: \"maxFiles\",\n label: \"Numero massimo di file\",\n placeholder: \"100\",\n tooltip: \"Numero massimo di file caricabilii, default è 100.\",\n weight: 40,\n },\n {\n type: \"checkbox\",\n input: true,\n key: \"webcam\",\n label: \"Enable web camera\",\n tooltip:\n \"This will allow using an attached camera to directly take a picture instead of uploading an existing file.\",\n weight: 32,\n },\n {\n type: \"textfield\",\n input: true,\n key: \"webcamSize\",\n label: \"Webcam Width\",\n placeholder: \"320\",\n tooltip: \"The webcam size for taking pictures.\",\n weight: 38,\n conditional: {\n json: { \"==\": [{ var: \"data.webcam\" }, true] },\n },\n },\n {\n type: \"datagrid\",\n input: true,\n label: \"File Types\",\n key: \"fileTypes\",\n tooltip:\n \"Specify file types to classify the uploads. This is useful if you allow multiple types of uploads but want to allow the user to specify which type of file each is.\",\n weight: 11,\n components: [\n {\n label: \"Label\",\n key: \"label\",\n input: true,\n type: \"textfield\",\n },\n {\n label: \"Value\",\n key: \"value\",\n input: true,\n type: \"textfield\",\n },\n ],\n },\n {\n type: \"textfield\",\n input: true,\n key: \"filePattern\",\n label: \"File Pattern\",\n placeholder: \".jpg,video/*,application/pdf\",\n tooltip:\n \"See <a href='https://github.com/danialfarid/ng-file-upload#full-reference' target='_blank'>https://github.com/danialfarid/ng-file-upload#full-reference</a> for how to specify file patterns.\",\n weight: 50,\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileMinSize\",\n label: \"File Minimum Size\",\n placeholder: \"1MB\",\n tooltip:\n \"See <a href='https://github.com/danialfarid/ng-file-upload#full-reference' target='_blank'>https://github.com/danialfarid/ng-file-upload#full-reference</a> for how to specify file sizes.\",\n weight: 60,\n },\n {\n type: \"textfield\",\n input: true,\n key: \"fileMaxSize\",\n label: \"File Maximum Size\",\n placeholder: \"10MB\",\n tooltip:\n \"See <a href='https://github.com/danialfarid/ng-file-upload#full-reference' target='_blank'>https://github.com/danialfarid/ng-file-upload#full-reference</a> for how to specify file sizes.\",\n weight: 70,\n },\n {\n type: 'textfield',\n input: true,\n key: 'maxFiles',\n label: 'Numero massimo di file',\n placeholder: '100',\n tooltip: 'Numero massimo di file caricabilii, default è 100.',\n weight: 40\n }\n];\n","export default [\n {\n key: \"unique\",\n ignore: true,\n },\n {\n key: \"validateOn\",\n ignore: true,\n },\n];\n","import { Components } from \"@formio/react\";\nimport FileEditData from \"./SdcFile.edit.data\";\nimport FileEditDisplay from \"./SdcFile.edit.display\";\nimport FileEditFile from \"./SdcFile.edit.file\";\nimport FileEditValidation from \"./SdcFile.edit.validation\";\n\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: FileEditDisplay,\n },\n {\n key: \"data\",\n components: FileEditData,\n },\n {\n label: \"File\",\n key: \"file\",\n weight: 5,\n components: FileEditFile,\n },\n {\n key: \"validation\",\n components: FileEditValidation,\n },\n ],\n ...extend,\n );\n}\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","import { jwtDecode } from \"jwt-decode\";\nimport BasePath from \"../_helpers/BasePath\";\nimport Swal from \"sweetalert2\";\nimport axios from \"axios\";\nimport { sessionGet, sessionSet } from \"../_helpers/utilities\";\nimport { baseUrl } from \"../_helpers/BaseUrl\";\nconst language = document.documentElement.lang.toString();\n\nclass Auth {\n constructor() {\n this.token = null;\n this.basePath = null;\n this.init();\n }\n\n init() {\n this.token = null;\n this.basePath = baseUrl();\n }\n\n async getSessionAuthToken() {\n let self = this;\n await axios\n .get(self.basePath + \"/api/session-auth\")\n .then((res) => {\n //TODO\n ;\n self.token = res.data.token;\n })\n .catch((err) => {\n Swal.fire(`'error_message_detail`, `'auth_error'`, \"error\");\n });\n }\n\n getSessionAuthTokenPromise() {\n let self = this;\n return new Promise(async (resolve, reject) => {\n if (sessionGet(\"auth-token\")) {\n resolve({ token: sessionGet(\"auth-token\") });\n } else {\n await axios\n .get(self.basePath + \"/api/session-auth?with-cookie=true\", {\n withCredentials: true,\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n },\n })\n .then((res) => {\n const decodedToken = jwtDecode(res.data.token);\n if (decodedToken.exp) {\n sessionSet(\"auth-token\", res.data.token, decodedToken.exp);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n });\n }\n\n getToken() {\n return this.token;\n }\n\n execAuthenticatedCall(callback) {\n if (this.token) {\n callback(this.token);\n } else {\n this.getSessionAuthTokenPromise().then((res) => {\n this.token = res.token;\n callback(this.token);\n });\n }\n }\n}\n\nexport default Auth;\n","import editForm from \"./SdcFile.form\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport { Button, Icon, Progress } from \"design-react-kit\";\nimport { useEffect, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport axios from \"axios\";\nimport Swal from \"sweetalert2\";\nimport mime from \"mime\";\nimport DOMPurify from \"dompurify\";\nimport get from \"lodash/get\";\nimport set from \"lodash/set\";\nimport { sessionGet } from \"../../_helpers/utilities\";\nimport Auth from \"../../class/Auth\";\nconst FileComponent = Formio.Components.components.file;\n\nlet signatureCheckWsUrl = null;\nif (document.querySelector(\"widget-formio\") !== null) {\n signatureCheckWsUrl = document\n .querySelector(\"widget-formio\")\n .getAttribute(\"signature-check-ws-url\");\n}\n\nexport const ReactSdcFile = ({ component, current, onChange, i18next }) => {\n const [uploadedFiles, setUploadedFiles] = useState([]);\n const [filesUploadingMap, setFilesUploadingMap] = useState(new Map());\n // Dato componente sola lettura\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n const auth = new Auth();\n\n useEffect(() => {\n auth.getSessionAuthTokenPromise();\n }, []);\n\n const addFilesUploading = (id, file) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.set(id, { ...file, progress: Number(file?.progress) || 0 });\n return updatedMap;\n });\n };\n\n function maxSizeValidator(file) {\n if (\n file.size >\n (translateScalars(component.fileMaxSize) || translateScalars(\"1GB\"))\n ) {\n return {\n code: \"size-files\",\n message: `${i18next.t(\"I file non possono superare le dimensioni di\")} ${component.fileMaxSize ? component.fileMaxSize : \"1GB\"}`,\n };\n }\n if (\n uploadedFiles.length >=\n (component.maxFiles\n ? parseInt(component.maxFiles)\n : component.multiple\n ? 100\n : 1)\n ) {\n return {\n code: \"too-many-files\",\n message: `${i18next.t(\"Puoi caricare massimo \")} ${component.maxFiles || 100} ${i18next.t(\"file\")}`,\n };\n }\n if (file.size < translateScalars(component.fileMinSize)) {\n return {\n code: \"file-too-small\",\n message: `${i18next.t(\"I file devono avare una dimensione superiore a \")} ${component.fileMinSize}`,\n };\n }\n return null;\n }\n\n function validateTypeFile() {\n if (component.filePattern) {\n const filePattern = component.filePattern\n .split(\",\")\n .map((file) => file.trim())\n .filter(Boolean);\n\n const accepted = filePattern.reduce((acc, file) => {\n const extension = file.startsWith(\".\") ? file : `.${file}`;\n const type = mime.getType(extension);\n\n if (!type) {\n return acc;\n }\n\n if (!acc[type]) {\n acc[type] = [];\n }\n acc[type].push(extension);\n return acc;\n }, {});\n\n return Object.keys(accepted).length ? accepted : undefined;\n } else {\n return true;\n }\n }\n\n const parsedFileInfo = (fileUpload) => {\n let fileInfo = {};\n\n fileInfo.originalName = fileUpload.originalName\n ? fileUpload.originalName\n : fileUpload.name;\n fileInfo.name = fileUpload.name;\n fileInfo.url = fileUpload.url;\n fileInfo.data = fileUpload.data;\n fileInfo.signature_validation = fileUpload.signature_validation;\n fileInfo.mime_type = fileUpload.mime_type;\n fileInfo.storage = \"url\";\n fileInfo.size = fileUpload.size;\n\n return fileInfo;\n };\n\n const { getRootProps, getInputProps, fileRejections, isDragActive, open } =\n useDropzone({\n onDrop: (acceptedFiles) => {\n acceptedFiles.map((file) => {\n uploadFile(file).then((res) => {\n // setUploadedFiles([...uploadedFiles, ...acceptedFiles]);\n });\n });\n },\n maxFiles: component.maxFiles\n ? parseInt(component.maxFiles) - uploadedFiles.length\n : component.multiple\n ? 100\n : 1,\n validator: maxSizeValidator,\n accept: validateTypeFile(),\n });\n\n const removeFile = (file) => {\n const url = baseUrl() + \"/api/attachments/\" + file.data.id;\n fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json; charset=utf-8\",\n Authorization: `Bearer ${sessionGet(\"auth-token\")}`,\n },\n strictErrors: true,\n })\n .then(() => {\n setUploadedFiles((prevUploadedFiles) => {\n let files = prevUploadedFiles.filter(\n (item) => item.data.id !== file.data.id,\n );\n onChange(files);\n return files;\n });\n })\n .catch((error) => {\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori durante l'eliminazione del file\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n console.error(error);\n });\n };\n\n const loadFiles = () => {\n const data =\n typeof current?.getCurrentValue === \"function\"\n ? current.getCurrentValue()\n : current?.dataValue;\n if (data?.length > 0) {\n setUploadedFiles(data);\n setTimeout(() => {\n onChange(data);\n }, 100);\n }\n };\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n setTimeout(() => {\n loadFiles();\n }, 1000);\n } else {\n setRenderDataReadOnly(false);\n setTimeout(() => {\n loadFiles();\n }, 1000);\n }\n }, []);\n\n async function uploadFile(fileUpload) {\n let idUpload;\n const url = baseUrl() + \"/it/upload\";\n\n let file = {\n mime_type: fileUpload.type,\n name: fileUpload.name,\n original_filename: fileUpload.name,\n protocol_required: component.protocol_required,\n size: fileUpload.size,\n };\n\n return await axios\n .post(url, file, {\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n })\n .then(async (respPost) => {\n idUpload = respPost.data.id;\n fileUpload.url = baseUrl() + \"/it/allegati/\" + idUpload;\n fileUpload.storage = \"url\";\n fileUpload.mime_type = fileUpload.type;\n fileUpload.protocol_required = component.protocol_required;\n fileUpload.data = {\n ...respPost.data,\n baseUrl: baseUrl() + \"/it/allegati/\" + idUpload,\n };\n addFilesUploading(idUpload, fileUpload);\n return await axios\n .put(respPost.data.uri, fileUpload, {\n onUploadProgress: (progressEvent) => {\n let percentCompleted = Math.round(\n (progressEvent.loaded * 100) / progressEvent.total,\n );\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n const file = fileUpload;\n file.progress = parseInt(percentCompleted);\n if (updatedMap.has(idUpload)) {\n updatedMap.set(idUpload, file);\n }\n return updatedMap;\n });\n },\n maxContentLength: Infinity,\n maxBodyLength: Infinity,\n headers: { \"Content-Type\": \"multipart/form-data\" },\n })\n .then(async (response) => {\n const regex = /\\\\|\"/gi;\n const etag = response.headers.etag.replace(regex, \"\") || null;\n // let fileIndex = component.dataValue.push(fileUpload) - 1;\n return await axios\n .put(baseUrl() + \"/it/upload/\" + idUpload, {\n file_hash: etag,\n check_signature: component.check_signature,\n })\n .then(async (resp) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n let currentValue = current.dataValue || [];\n let fileIndex = null;\n setUploadedFiles((files) => {\n const nextFiles = [...files, parsedFileInfo(fileUpload)];\n fileIndex = nextFiles.length - 1;\n onChange(nextFiles);\n return nextFiles;\n });\n if (\n component.check_signature &&\n resp.data.url &&\n signatureCheckWsUrl\n ) {\n return await axios\n .post(\n signatureCheckWsUrl,\n {\n url: resp.data.url,\n content: null,\n },\n {\n headers: {\n \"Content-Type\": \"application/json\",\n },\n },\n )\n .then((resp) => {\n fileUpload.signature_validation = resp.data.sign;\n currentValue[fileIndex].signature_validation =\n resp.data.sign;\n })\n .catch((e) => {\n currentValue[fileIndex].signature_validation =\n \"File validation error: \" + e;\n });\n }\n\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n })\n .catch((err) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n console.log(err);\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori dutante il caricamento dei file, riprova più tardi!\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n })\n .catch((err) => {\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n console.log(err);\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori dutante il caricamento dei file, riprova più tardi!\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n })\n .catch((responseErr) => {\n console.log(responseErr);\n Swal.fire({\n title: \"\",\n html: `<p>${i18next.t(\"Ci sono stati degli errori dutante il caricamento dei file, riprova più tardi!\")}</p>`,\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n setFilesUploadingMap((prevMap) => {\n const updatedMap = new Map(prevMap);\n updatedMap.delete(idUpload);\n return updatedMap;\n });\n });\n }\n\n // trasforma stringa in bytes\n function translateScalars(str) {\n if (typeof str === \"string\") {\n if (str.search(/kb/i) === str.length - 2) {\n return parseFloat(str.substring(0, str.length - 2) * 1024);\n }\n if (str.search(/mb/i) === str.length - 2) {\n return parseFloat(str.substring(0, str.length - 2) * 1024 * 1024);\n }\n if (str.search(/gb/i) === str.length - 2) {\n return parseFloat(\n str.substring(0, str.length - 2) * 1024 * 1024 * 1024,\n );\n }\n if (str.search(/b/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1));\n }\n if (str.search(/s/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1));\n }\n if (str.search(/m/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1) * 60);\n }\n if (str.search(/h/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1) * 3600);\n }\n }\n return str;\n }\n\n function formatBytes(bytes, decimals = 2) {\n if (!+bytes) return \"0 Bytes\";\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n }\n\n if (current.conditionallyHidden() || current.visible === false) {\n return null;\n }\n\n return (\n <>\n {renderDataReadOnly ? (\n <div>\n <label\n className=\"col-form-label floating-label\"\n htmlFor={`${component.id}-${component.key}`}\n >\n {component.label}\n {component.validate.required && (\n <span className=\"text-danger\"></span>\n )}\n </label>\n <ul className=\"upload-file-list\">\n {uploadedFiles.map((file, index) => (\n <li\n key={file.size + index}\n className=\"upload-file success mw-100\"\n >\n <Icon\n aria-hidden=\"true\"\n color=\"primary\"\n icon=\"it-file\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>\n <span className=\"visually-hidden\">\n {i18next.t(\"File caricato:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n </li>\n ))}\n {Boolean(uploadedFiles.length < 1) && (\n <li className=\"upload-file text-secondary mw-100\">\n <Icon\n aria-hidden=\"true\"\n color=\"light\"\n icon=\"it-files\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>{i18next.t(\"Nessun elemento\")}</p>\n </li>\n )}\n </ul>\n </div>\n ) : (\n <>\n {component.hideLabel || component.hidden ? (\n \"\"\n ) : (\n <label\n className=\"col-form-label floating-label\"\n htmlFor={`${component.id}-${component.key}`}\n title={component.tooltip || undefined}\n >\n {component.label}\n {component.validate.required && (\n <span className=\"text-danger\"></span>\n )}\n {component.tooltip && (\n <i\n tabIndex={0}\n className=\"bi bi-question-circle text-muted ms-1\"\n data-tooltip={component.tooltip}\n aria-expanded=\"false\"\n ></i>\n )}\n </label>\n )}\n <div\n className={`my-1 border-2 border-light file-uploader-box rounded p-3 text-secondary${isDragActive ? \" dragover\" : \"\"}`}\n style={{ border: \"dashed\" }}\n {...getRootProps({\n onClick: (event) => event.stopPropagation(),\n })}\n >\n <input\n id={`${component.id}-${component.key}`}\n aria-describedby={`file-uploader-description-${component.id}-${component.key}`}\n {...getInputProps()}\n />\n <div\n className={`upload-dragdrop${isDragActive ? \" dragover\" : \"\"}`}\n >\n <div className=\"ms-1 me-3\">\n <Icon\n color=\"secondary\"\n icon=\"it-upload\"\n title={i18next.t(\"Carica file\")}\n size={\"_sm\"}\n />\n </div>\n <div className=\"upload-dragdrop-text\">\n <div\n className=\"h5\"\n id={`file-uploader-description-${component.id}-${component.key}`}\n >\n {i18next.t(\"Trascina il file per caricarlo\")}\n </div>\n <p className=\"d-inline-flex\">\n {i18next.t(\"oppure\")}\n <Button\n tag=\"input\"\n type=\"button\"\n value={i18next.t(\"selezionalo dal dispositivo\")}\n onClick={open}\n className=\"px-1 py-0 text-decoration-underline primary-color\"\n size=\"xs\"\n />\n </p>\n </div>\n </div>\n </div>\n <div\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(component.description || \"\"),\n }}\n />\n <ul className=\"upload-file-list my-0\">\n {uploadedFiles.map((file, index) => (\n <li key={file.size + index} className=\"upload-file success\">\n <Icon\n aria-hidden=\"true\"\n color=\"primary\"\n icon=\"it-file\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>\n <span className=\"visually-hidden\">\n {i18next.t(\"File caricato:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n <Button className=\"px-1\" onClick={() => removeFile(file)}>\n <Icon\n title={`${i18next.t(\"Elimina file caricato\")} ${file.name}`}\n color=\"secondary\"\n icon=\"it-delete\"\n className=\"ms-auto pointer\"\n size=\"sm\"\n />\n </Button>\n </li>\n ))}\n {Array.from(filesUploadingMap.entries()).map(([id, file]) => (\n <li key={id} className=\"upload-file success\">\n <Icon\n aria-hidden=\"true\"\n color=\"primary\"\n icon=\"it-file\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p>\n <span className=\"visually-hidden\">\n {i18next.t(\"Caricamento file:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n <Progress value={Number(file?.progress) || 0} />\n </li>\n ))}\n </ul>\n {Boolean(fileRejections && fileRejections.length) && (\n <div className=\"formio-error-wrapper\">\n <ul className=\"formio-errors upload-file-list my-0 \">\n {fileRejections.map(({ file, errors }, index) => (\n <li key={file.size + index} className=\"upload-file error\">\n <div className=\"upload-file-name-error-wrapper\">\n <Icon\n aria-hidden=\"true\"\n color=\"error\"\n icon=\"it-error\"\n title=\"Icona file\"\n size=\"sm\"\n />\n <p className=\"text-wrap error\">\n <span className=\"visually-hidden\">\n {i18next.t(\"Errore caricamento file:\")}\n </span>\n {file.name}\n <span className={\"upload-file-weight\"}>\n {formatBytes(file.size)}\n </span>\n </p>\n {/* <Button aria-hidden=\"true\" disabled className=\"px-0\">\n <Icon\n aria-hidden=\"true\"\n color=\"error\"\n icon=\"it-close\"\n className=\"px-0\"\n />\n </Button> */}\n </div>\n <div>\n {errors.map((e) => {\n if (e.code === \"file-invalid-type\") {\n return (\n <p className=\"text-wrap ms-0\">\n {i18next.t(\"I file possono essere di tipo \")}\n {component.filePattern}\n </p>\n );\n } else if (e.code === \"too-many-files\") {\n return (\n <p className=\"text-wrap ms-0\">\n {i18next.t(\"Puoi caricare massimo \")}{\" \"}\n {component.maxFiles\n ? component.maxFiles\n : component.multiple\n ? 100\n : 1}{\" \"}\n {i18next.t(\"file\")}\n </p>\n );\n } else {\n return <p className=\"text-wrap ms-0\">{e.message}</p>;\n }\n })}\n </div>\n </li>\n ))}\n </ul>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default class FormioSdcFile extends FileComponent {\n constructor(component, options, data) {\n super(\n {\n ...component,\n clearOnHide: false,\n },\n options,\n data,\n );\n\n this.reactRef = null;\n this.lastRenderedVisible = undefined;\n this.rootComponent = null;\n this.mountNode = null;\n }\n\n static get builderInfo() {\n return {\n title: \"File Sdc\",\n group: \"basic\",\n icon: \"bi bi-file-earmark-text\",\n documentation: \"\",\n weight: 70,\n schema: FormioSdcFile.schema(),\n };\n }\n\n get emptyValue() {\n return [];\n }\n\n init() {\n super.init();\n if (this.component?.multiple && !Array.isArray(this.getCurrentValue())) {\n this.dataValue = [];\n const path = this.path || this.component?.key;\n if (path && this.rootValue) {\n set(this.rootValue, path, []);\n }\n }\n }\n\n static schema() {\n return FileComponent.schema({\n type: \"sdcfile\",\n modelType: \"array\",\n });\n }\n\n static editForm = editForm;\n\n getI18next() {\n if (this.i18next && typeof this.i18next.t === \"function\") {\n return this.i18next;\n }\n\n return {\n language:\n this.options?.language || document?.documentElement?.lang || \"it\",\n t: (key, options) => this.t(key, options),\n };\n }\n\n hideFileProcessingLoader() {\n if (this.refs?.fileProcessingLoader) {\n this.refs.fileProcessingLoader.style.display = \"none\";\n }\n }\n\n renderReact() {\n if (!this.rootComponent) return;\n\n if (this.builderMode) {\n this.rootComponent.render(\n <div className=\"my-1 border border-2 border-light file-uploader-box rounded p-3 text-secondary\">\n <div className=\"upload-dragdrop\">\n <div className=\"upload-dragdrop-text\">\n <div className=\"h6 mb-0\">\n {this.component?.label || \"File Sdc\"}\n </div>\n </div>\n </div>\n </div>,\n );\n return;\n }\n\n this.rootComponent.render(\n <ReactSdcFile\n component={this.component}\n current={this}\n i18next={this.getI18next()}\n onChange={(value) => this.updateValueFromReact(value)}\n />,\n );\n }\n\n attach(element) {\n const result = super.attach(element);\n this.hideFileProcessingLoader();\n\n const reactRefName = `react-${this.id}`;\n this.loadRefs(element, { [reactRefName]: \"single\" });\n const mountNode = this.refs[reactRefName];\n\n if (!mountNode) {\n return result;\n }\n\n if (this.rootComponent && this.mountNode !== mountNode) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n\n if (!this.rootComponent) {\n this.rootComponent = createRoot(mountNode);\n }\n this.mountNode = mountNode;\n this.lastRenderedVisible = this.visible;\n this.renderReact();\n\n return result;\n }\n\n updateValueFromReact(value, flags = { modified: true }) {\n const normalized = this.normalizeValue(value, flags);\n const changed = this.updateValue(normalized, flags);\n\n const path = this.path || this.component?.key;\n if (path && this.rootValue) {\n const rootPathValue = get(this.rootValue, path);\n if (!this.isEqual(rootPathValue, normalized)) {\n set(this.rootValue, path, normalized);\n }\n }\n\n return changed;\n }\n\n setValue(value, flags = {}) {\n const normalized = this.normalizeValue(value, flags);\n const changed = super.setValue(normalized, flags);\n\n const path = this.path || this.component?.key;\n if (path && this.rootValue) {\n const rootPathValue = get(this.rootValue, path);\n if (!this.isEqual(rootPathValue, normalized)) {\n set(this.rootValue, path, normalized);\n }\n }\n\n return changed;\n }\n\n normalizeValue(value, flags = {}) {\n const normalized = super.normalizeValue(value, flags);\n\n if (!this.component?.multiple) {\n return normalized;\n }\n\n if (Array.isArray(normalized)) {\n return normalized;\n }\n\n if (normalized === null || normalized === undefined || normalized === \"\") {\n return [];\n }\n\n return [normalized];\n }\n\n detach() {\n this.hideFileProcessingLoader();\n if (this.rootComponent) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n this.mountNode = null;\n return super.detach();\n }\n\n getValue() {\n return this.getCurrentValue();\n }\n\n get validationValue() {\n return this.getCurrentValue();\n }\n\n getCurrentValue() {\n const localValue = super.getValue();\n const path = this.path || this.component?.key;\n const rootPathValue =\n path && this.rootValue ? get(this.rootValue, path) : undefined;\n\n if (this.component?.multiple) {\n if (Array.isArray(localValue) && localValue.length > 0) {\n return localValue;\n }\n if (Array.isArray(rootPathValue)) {\n return rootPathValue;\n }\n return [];\n }\n\n return localValue ?? rootPathValue ?? null;\n }\n\n isEmpty(value = this.validationValue) {\n if (this.component?.multiple) {\n return !Array.isArray(value) || value.length === 0;\n }\n return value === null || value === undefined || value === \"\";\n }\n\n checkCondition(row, data) {\n const result = super.checkCondition(row, data);\n const nextVisible = this.visible;\n\n if (this.lastRenderedVisible !== nextVisible) {\n this.lastRenderedVisible = nextVisible;\n this.renderReact();\n }\n return result;\n }\n\n render() {\n const content = `<div ref=\"react-${this.id}\"></div>`;\n // FileComponent.render() ignora i children e renderizza sempre il template file.\n // Per montare React su un ref dedicato dobbiamo saltare quel livello.\n const componentRender = Object.getPrototypeOf(\n Object.getPrototypeOf(FileComponent.prototype),\n ).render;\n return componentRender.call(this, content);\n }\n}\n","export default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n];\n","import { Components } from \"@formio/react\";\nimport AddressMapEdit from \"./AddressMap.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: AddressMapEdit,\n },\n ],\n ...extend,\n );\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"react\")):\"function\"==typeof define&&define.amd?define(\"Autocomplete\",[\"react\"],e):\"object\"==typeof exports?exports.Autocomplete=e(require(\"react\")):t.Autocomplete=e(t.React)}(this,(function(t){return function(){\"use strict\";var e={680:function(e){e.exports=t},8952:function(t,e,n){var r=n(4328),o=n(36),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not a function\")}},2096:function(t,e,n){var r=n(2424),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(\"Can't set \"+o(t)+\" as a prototype\")}},4764:function(t,e,n){var r=n(9764).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},6100:function(t,e,n){var r=n(7e3),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw new o(\"Incorrect invocation\")}},3951:function(t,e,n){var r=n(1632),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+\" is not an object\")}},2504:function(t,e,n){var r=n(4096),o=n(2495),i=n(3556),u=function(t){return function(e,n,u){var a=r(e),c=i(a);if(0===c)return!t&&-1;var s,l=o(u,c);if(t&&n!=n){for(;c>l;)if((s=a[l++])!=s)return!0}else for(;c>l;l++)if((t||l in a)&&a[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:u(!0),indexOf:u(!1)}},3364:function(t,e,n){var r=n(8992),o=n(1664),i=n(5712),u=n(4356),a=n(3556),c=n(2568),s=o([].push),l=function(t){var e=1===t,n=2===t,o=3===t,l=4===t,f=6===t,p=7===t,h=5===t||f;return function(d,v,y,g){for(var m,b,x=u(d),w=i(x),O=a(w),S=r(v,y),E=0,I=g||c,j=e?I(d,O):n||p?I(d,0):void 0;O>E;E++)if((h||E in w)&&(b=S(m=w[E],E,x),t))if(e)j[E]=b;else if(b)switch(t){case 3:return!0;case 5:return m;case 6:return E;case 2:s(j,m)}else switch(t){case 4:return!1;case 7:s(j,m)}return f?-1:o||l?l:j}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},953:function(t,e,n){var r=n(9957),o=n(9972),i=n(8504),u=o(\"species\");t.exports=function(t){return i>=51||!r((function(){var e=[];return(e.constructor={})[u]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},1496:function(t,e,n){var r=n(9957);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},6728:function(t,e,n){var r=n(3476),o=n(1432),i=TypeError,u=Object.getOwnPropertyDescriptor,a=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],\"length\",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=a?function(t,e){if(o(t)&&!u(t,\"length\").writable)throw new i(\"Cannot set read only .length\");return t.length=e}:function(t,e){return t.length=e}},6736:function(t,e,n){var r=n(1432),o=n(6072),i=n(1632),u=n(9972)(\"species\"),a=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,(o(e)&&(e===a||r(e.prototype))||i(e)&&null===(e=e[u]))&&(e=void 0)),void 0===e?a:e}},2568:function(t,e,n){var r=n(6736);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},8696:function(t,e,n){var r=n(3951),o=n(3112);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(u){o(t,\"throw\",u)}}},1888:function(t,e,n){var r=n(1664),o=r({}.toString),i=r(\"\".slice);t.exports=function(t){return i(o(t),8,-1)}},4427:function(t,e,n){var r=n(16),o=n(4328),i=n(1888),u=n(9972)(\"toStringTag\"),a=Object,c=\"Arguments\"===i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?\"Undefined\":null===t?\"Null\":\"string\"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=a(t),u))?n:c?i(e):\"Object\"===(r=i(e))&&o(e.callee)?\"Arguments\":r}},9968:function(t,e,n){var r=n(5152),o=n(9252),i=n(9444),u=n(8352);t.exports=function(t,e,n){for(var a=o(e),c=u.f,s=i.f,l=0;l<a.length;l++){var f=a[l];r(t,f)||n&&r(n,f)||c(t,f,s(e,f))}}},2272:function(t,e,n){var r=n(9957);t.exports=!r((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},3336:function(t){t.exports=function(t,e){return{value:t,done:e}}},3440:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9728:function(t){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},92:function(t,e,n){var r=n(3476),o=n(8352),i=n(9728);t.exports=function(t,e,n){r?o.f(t,e,i(0,n)):t[e]=n}},2544:function(t,e,n){var r=n(5312),o=n(8352);t.exports=function(t,e,n){return n.get&&r(n.get,e,{getter:!0}),n.set&&r(n.set,e,{setter:!0}),o.f(t,e,n)}},6076:function(t,e,n){var r=n(4328),o=n(8352),i=n(5312),u=n(4636);t.exports=function(t,e,n,a){a||(a={});var c=a.enumerable,s=void 0!==a.name?a.name:e;if(r(n)&&i(n,s,a),a.global)c?t[e]=n:u(e,n);else{try{a.unsafe?t[e]&&(c=!0):delete t[e]}catch(l){}c?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},4036:function(t,e,n){var r=n(6076);t.exports=function(t,e,n){for(var o in e)r(t,o,e[o],n);return t}},4636:function(t,e,n){var r=n(6420),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},3476:function(t,e,n){var r=n(9957);t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8168:function(t,e,n){var r=n(6420),o=n(1632),i=r.document,u=o(i)&&o(i.createElement);t.exports=function(t){return u?i.createElement(t):{}}},4316:function(t){var e=TypeError;t.exports=function(t){if(t>9007199254740991)throw e(\"Maximum allowed index exceeded\");return t}},6064:function(t){t.exports=\"undefined\"!=typeof navigator&&String(navigator.userAgent)||\"\"},8504:function(t,e,n){var r,o,i=n(6420),u=n(6064),a=i.process,c=i.Deno,s=a&&a.versions||c&&c.version,l=s&&s.v8;l&&(o=(r=l.split(\".\"))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&u&&(!(r=u.match(/Edge\\/(\\d+)/))||r[1]>=74)&&(r=u.match(/Chrome\\/(\\d+)/))&&(o=+r[1]),t.exports=o},8256:function(t){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},6520:function(t,e,n){var r=n(1664),o=Error,i=r(\"\".replace),u=String(new o(\"zxcasd\").stack),a=/\\n\\s*at [^:]*:[^\\n]*/,c=a.test(u);t.exports=function(t,e){if(c&&\"string\"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,a,\"\");return t}},3696:function(t,e,n){var r=n(3440),o=n(6520),i=n(9184),u=Error.captureStackTrace;t.exports=function(t,e,n,a){i&&(u?u(t,e):r(t,\"stack\",o(n,a)))}},9184:function(t,e,n){var r=n(9957),o=n(9728);t.exports=!r((function(){var t=new Error(\"a\");return!(\"stack\"in t)||(Object.defineProperty(t,\"stack\",o(1,7)),7!==t.stack)}))},9160:function(t,e,n){var r=n(6420),o=n(9444).f,i=n(3440),u=n(6076),a=n(4636),c=n(9968),s=n(6704);t.exports=function(t,e){var n,l,f,p,h,d=t.target,v=t.global,y=t.stat;if(n=v?r:y?r[d]||a(d,{}):r[d]&&r[d].prototype)for(l in e){if(p=e[l],f=t.dontCallGetSet?(h=o(n,l))&&h.value:n[l],!s(v?l:d+(y?\".\":\"#\")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;c(p,f)}(t.sham||f&&f.sham)&&i(p,\"sham\",!0),u(n,l,p,t)}}},9957:function(t){t.exports=function(t){try{return!!t()}catch(e){return!0}}},7176:function(t,e,n){n(880);var r=n(8448),o=n(6076),i=n(7680),u=n(9957),a=n(9972),c=n(3440),s=a(\"species\"),l=RegExp.prototype;t.exports=function(t,e,n,f){var p=a(t),h=!u((function(){var e={};return e[p]=function(){return 7},7!==\"\"[t](e)})),d=h&&!u((function(){var e=!1,n=/a/;return\"split\"===t&&((n={}).constructor={},n.constructor[s]=function(){return n},n.flags=\"\",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](\"\"),!e}));if(!h||!d||n){var v=/./[p],y=e(p,\"\"[t],(function(t,e,n,o,u){var a=e.exec;return a===i||a===l.exec?h&&!u?{done:!0,value:r(v,e,n,o)}:{done:!0,value:r(t,n,e,o)}:{done:!1}}));o(String.prototype,t,y[0]),o(l,p,y[1])}f&&c(l[p],\"sham\",!0)}},908:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.apply,u=o.call;t.exports=\"object\"==typeof Reflect&&Reflect.apply||(r?u.bind(i):function(){return u.apply(i,arguments)})},8992:function(t,e,n){var r=n(3180),o=n(8952),i=n(7332),u=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?u(t,e):function(){return t.apply(e,arguments)}}},7332:function(t,e,n){var r=n(9957);t.exports=!r((function(){var t=function(){}.bind();return\"function\"!=typeof t||t.hasOwnProperty(\"prototype\")}))},8448:function(t,e,n){var r=n(7332),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},6208:function(t,e,n){var r=n(3476),o=n(5152),i=Function.prototype,u=r&&Object.getOwnPropertyDescriptor,a=o(i,\"name\"),c=a&&\"something\"===function(){}.name,s=a&&(!r||r&&u(i,\"name\").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:s}},5288:function(t,e,n){var r=n(1664),o=n(8952);t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},3180:function(t,e,n){var r=n(1888),o=n(1664);t.exports=function(t){if(\"Function\"===r(t))return o(t)}},1664:function(t,e,n){var r=n(7332),o=Function.prototype,i=o.call,u=r&&o.bind.bind(i,i);t.exports=r?u:function(t){return function(){return i.apply(t,arguments)}}},5232:function(t,e,n){var r=n(6420),o=n(4328);t.exports=function(t,e){return arguments.length<2?(n=r[t],o(n)?n:void 0):r[t]&&r[t][e];var n}},6752:function(t){t.exports=function(t){return{iterator:t,next:t.next,done:!1}}},4504:function(t,e,n){var r=n(8952),o=n(9760);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},6420:function(t,e,n){var r=function(t){return t&&t.Math===Math&&t};t.exports=r(\"object\"==typeof globalThis&&globalThis)||r(\"object\"==typeof window&&window)||r(\"object\"==typeof self&&self)||r(\"object\"==typeof n.g&&n.g)||r(\"object\"==typeof this&&this)||function(){return this}()||Function(\"return this\")()},5152:function(t,e,n){var r=n(1664),o=n(4356),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},2560:function(t){t.exports={}},4168:function(t,e,n){var r=n(5232);t.exports=r(\"document\",\"documentElement\")},9888:function(t,e,n){var r=n(3476),o=n(9957),i=n(8168);t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},5712:function(t,e,n){var r=n(1664),o=n(9957),i=n(1888),u=Object,a=r(\"\".split);t.exports=o((function(){return!u(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"===i(t)?a(t,\"\"):u(t)}:u},7512:function(t,e,n){var r=n(4328),o=n(1632),i=n(4024);t.exports=function(t,e,n){var u,a;return i&&r(u=e.constructor)&&u!==n&&o(a=u.prototype)&&a!==n.prototype&&i(t,a),t}},9112:function(t,e,n){var r=n(1664),o=n(4328),i=n(3976),u=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return u(t)}),t.exports=i.inspectSource},3480:function(t,e,n){var r=n(1632),o=n(3440);t.exports=function(t,e){r(e)&&\"cause\"in e&&o(t,\"cause\",e.cause)}},9104:function(t,e,n){var r,o,i,u=n(4288),a=n(6420),c=n(1632),s=n(3440),l=n(5152),f=n(3976),p=n(6504),h=n(2560),d=\"Object already initialized\",v=a.TypeError,y=a.WeakMap;if(u||f.state){var g=f.state||(f.state=new y);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw new v(d);return e.facade=t,g.set(t,e),e},o=function(t){return g.get(t)||{}},i=function(t){return g.has(t)}}else{var m=p(\"state\");h[m]=!0,r=function(t,e){if(l(t,m))throw new v(d);return e.facade=t,s(t,m,e),e},o=function(t){return l(t,m)?t[m]:{}},i=function(t){return l(t,m)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=o(e)).type!==t)throw new v(\"Incompatible receiver, \"+t+\" required\");return n}}}},1432:function(t,e,n){var r=n(1888);t.exports=Array.isArray||function(t){return\"Array\"===r(t)}},4328:function(t){var e=\"object\"==typeof document&&document.all;t.exports=void 0===e&&void 0!==e?function(t){return\"function\"==typeof t||t===e}:function(t){return\"function\"==typeof t}},6072:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(4427),a=n(5232),c=n(9112),s=function(){},l=a(\"Reflect\",\"construct\"),f=/^\\s*(?:class|function)\\b/,p=r(f.exec),h=!f.test(s),d=function(t){if(!i(t))return!1;try{return l(s,[],t),!0}catch(e){return!1}},v=function(t){if(!i(t))return!1;switch(u(t)){case\"AsyncFunction\":case\"GeneratorFunction\":case\"AsyncGeneratorFunction\":return!1}try{return h||!!p(f,c(t))}catch(e){return!0}};v.sham=!0,t.exports=!l||o((function(){var t;return d(d.call)||!d(Object)||!d((function(){t=!0}))||t}))?v:d},6704:function(t,e,n){var r=n(9957),o=n(4328),i=/#|\\.prototype\\./,u=function(t,e){var n=c[a(t)];return n===l||n!==s&&(o(e)?r(e):!!e)},a=u.normalize=function(t){return String(t).replace(i,\".\").toLowerCase()},c=u.data={},s=u.NATIVE=\"N\",l=u.POLYFILL=\"P\";t.exports=u},9760:function(t){t.exports=function(t){return null==t}},1632:function(t,e,n){var r=n(4328);t.exports=function(t){return\"object\"==typeof t?null!==t:r(t)}},2424:function(t,e,n){var r=n(1632);t.exports=function(t){return r(t)||null===t}},7048:function(t){t.exports=!1},7728:function(t,e,n){var r=n(5232),o=n(4328),i=n(7e3),u=n(6536),a=Object;t.exports=u?function(t){return\"symbol\"==typeof t}:function(t){var e=r(\"Symbol\");return o(e)&&i(e.prototype,a(t))}},3112:function(t,e,n){var r=n(8448),o=n(3951),i=n(4504);t.exports=function(t,e,n){var u,a;o(t);try{if(!(u=i(t,\"return\"))){if(\"throw\"===e)throw n;return n}u=r(u,t)}catch(c){a=!0,u=c}if(\"throw\"===e)throw n;if(a)throw u;return o(u),n}},9724:function(t,e,n){var r=n(8448),o=n(9368),i=n(3440),u=n(4036),a=n(9972),c=n(9104),s=n(4504),l=n(336).IteratorPrototype,f=n(3336),p=n(3112),h=a(\"toStringTag\"),d=\"IteratorHelper\",v=\"WrapForValidIterator\",y=c.set,g=function(t){var e=c.getterFor(t?v:d);return u(o(l),{next:function(){var n=e(this);if(t)return n.nextHandler();try{var r=n.done?void 0:n.nextHandler();return f(r,n.done)}catch(o){throw n.done=!0,o}},return:function(){var n=e(this),o=n.iterator;if(n.done=!0,t){var i=s(o,\"return\");return i?r(i,o):f(void 0,!0)}if(n.inner)try{p(n.inner.iterator,\"normal\")}catch(u){return p(o,\"throw\",u)}return p(o,\"normal\"),f(void 0,!0)}})},m=g(!0),b=g(!1);i(b,h,\"Iterator Helper\"),t.exports=function(t,e){var n=function(n,r){r?(r.iterator=n.iterator,r.next=n.next):r=n,r.type=e?v:d,r.nextHandler=t,r.counter=0,r.done=!1,y(this,r)};return n.prototype=e?m:b,n}},5792:function(t,e,n){var r=n(8448),o=n(8952),i=n(3951),u=n(6752),a=n(9724),c=n(8696),s=a((function(){var t=this.iterator,e=i(r(this.next,t));if(!(this.done=!!e.done))return c(t,this.mapper,[e.value,this.counter++],!0)}));t.exports=function(t){return i(this),o(t),new s(u(this),{mapper:t})}},336:function(t,e,n){var r,o,i,u=n(9957),a=n(4328),c=n(1632),s=n(9368),l=n(7796),f=n(6076),p=n(9972),h=n(7048),d=p(\"iterator\"),v=!1;[].keys&&(\"next\"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):v=!0),!c(r)||u((function(){var t={};return r[d].call(t)!==t}))?r={}:h&&(r=s(r)),a(r[d])||f(r,d,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},3556:function(t,e,n){var r=n(7584);t.exports=function(t){return r(t.length)}},5312:function(t,e,n){var r=n(1664),o=n(9957),i=n(4328),u=n(5152),a=n(3476),c=n(6208).CONFIGURABLE,s=n(9112),l=n(9104),f=l.enforce,p=l.get,h=String,d=Object.defineProperty,v=r(\"\".slice),y=r(\"\".replace),g=r([].join),m=a&&!o((function(){return 8!==d((function(){}),\"length\",{value:8}).length})),b=String(String).split(\"String\"),x=t.exports=function(t,e,n){\"Symbol(\"===v(h(e),0,7)&&(e=\"[\"+y(h(e),/^Symbol\\(([^)]*)\\).*$/,\"$1\")+\"]\"),n&&n.getter&&(e=\"get \"+e),n&&n.setter&&(e=\"set \"+e),(!u(t,\"name\")||c&&t.name!==e)&&(a?d(t,\"name\",{value:e,configurable:!0}):t.name=e),m&&n&&u(n,\"arity\")&&t.length!==n.arity&&d(t,\"length\",{value:n.arity});try{n&&u(n,\"constructor\")&&n.constructor?a&&d(t,\"prototype\",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(o){}var r=f(t);return u(r,\"source\")||(r.source=g(b,\"string\"==typeof e?e:\"\")),t};Function.prototype.toString=x((function(){return i(this)&&p(this).source||s(this)}),\"toString\")},1748:function(t){var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},8948:function(t,e,n){var r=n(5016);t.exports=function(t,e){return void 0===t?arguments.length<2?\"\":e:r(t)}},9292:function(t,e,n){var r=n(3476),o=n(1664),i=n(8448),u=n(9957),a=n(1531),c=n(9392),s=n(8912),l=n(4356),f=n(5712),p=Object.assign,h=Object.defineProperty,d=o([].concat);t.exports=!p||u((function(){if(r&&1!==p({b:1},p(h({},\"a\",{enumerable:!0,get:function(){h(this,\"b\",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol(\"assign detection\"),o=\"abcdefghijklmnopqrst\";return t[n]=7,o.split(\"\").forEach((function(t){e[t]=t})),7!==p({},t)[n]||a(p({},e)).join(\"\")!==o}))?function(t,e){for(var n=l(t),o=arguments.length,u=1,p=c.f,h=s.f;o>u;)for(var v,y=f(arguments[u++]),g=p?d(a(y),p(y)):a(y),m=g.length,b=0;m>b;)v=g[b++],r&&!i(h,y,v)||(n[v]=y[v]);return n}:p},9368:function(t,e,n){var r,o=n(3951),i=n(2056),u=n(8256),a=n(2560),c=n(4168),s=n(8168),l=n(6504),f=\"prototype\",p=\"script\",h=l(\"IE_PROTO\"),d=function(){},v=function(t){return\"<\"+p+\">\"+t+\"</\"+p+\">\"},y=function(t){t.write(v(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){try{r=new ActiveXObject(\"htmlfile\")}catch(i){}var t,e,n;g=\"undefined\"!=typeof document?document.domain&&r?y(r):(e=s(\"iframe\"),n=\"java\"+p+\":\",e.style.display=\"none\",c.appendChild(e),e.src=String(n),(t=e.contentWindow.document).open(),t.write(v(\"document.F=Object\")),t.close(),t.F):y(r);for(var o=u.length;o--;)delete g[f][u[o]];return g()};a[h]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(d[f]=o(t),n=new d,d[f]=null,n[h]=t):n=g(),void 0===e?n:i.f(n,e)}},2056:function(t,e,n){var r=n(3476),o=n(1576),i=n(8352),u=n(3951),a=n(4096),c=n(1531);e.f=r&&!o?Object.defineProperties:function(t,e){u(t);for(var n,r=a(e),o=c(e),s=o.length,l=0;s>l;)i.f(t,n=o[l++],r[n]);return t}},8352:function(t,e,n){var r=n(3476),o=n(9888),i=n(1576),u=n(3951),a=n(88),c=TypeError,s=Object.defineProperty,l=Object.getOwnPropertyDescriptor,f=\"enumerable\",p=\"configurable\",h=\"writable\";e.f=r?i?function(t,e,n){if(u(t),e=a(e),u(n),\"function\"==typeof t&&\"prototype\"===e&&\"value\"in n&&h in n&&!n[h]){var r=l(t,e);r&&r[h]&&(t[e]=n.value,n={configurable:p in n?n[p]:r[p],enumerable:f in n?n[f]:r[f],writable:!1})}return s(t,e,n)}:s:function(t,e,n){if(u(t),e=a(e),u(n),o)try{return s(t,e,n)}catch(r){}if(\"get\"in n||\"set\"in n)throw new c(\"Accessors not supported\");return\"value\"in n&&(t[e]=n.value),t}},9444:function(t,e,n){var r=n(3476),o=n(8448),i=n(8912),u=n(9728),a=n(4096),c=n(88),s=n(5152),l=n(9888),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=a(t),e=c(e),l)try{return f(t,e)}catch(n){}if(s(t,e))return u(!o(i.f,t,e),t[e])}},5048:function(t,e,n){var r=n(9008),o=n(8256).concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},9392:function(t,e){e.f=Object.getOwnPropertySymbols},7796:function(t,e,n){var r=n(5152),o=n(4328),i=n(4356),u=n(6504),a=n(2272),c=u(\"IE_PROTO\"),s=Object,l=s.prototype;t.exports=a?s.getPrototypeOf:function(t){var e=i(t);if(r(e,c))return e[c];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof s?l:null}},7e3:function(t,e,n){var r=n(1664);t.exports=r({}.isPrototypeOf)},9008:function(t,e,n){var r=n(1664),o=n(5152),i=n(4096),u=n(2504).indexOf,a=n(2560),c=r([].push);t.exports=function(t,e){var n,r=i(t),s=0,l=[];for(n in r)!o(a,n)&&o(r,n)&&c(l,n);for(;e.length>s;)o(r,n=e[s++])&&(~u(l,n)||c(l,n));return l}},1531:function(t,e,n){var r=n(9008),o=n(8256);t.exports=Object.keys||function(t){return r(t,o)}},8912:function(t,e){var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!n.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},4024:function(t,e,n){var r=n(5288),o=n(3951),i=n(2096);t.exports=Object.setPrototypeOf||(\"__proto__\"in{}?function(){var t,e=!1,n={};try{(t=r(Object.prototype,\"__proto__\",\"set\"))(n,[]),e=n instanceof Array}catch(u){}return function(n,r){return o(n),i(r),e?t(n,r):n.__proto__=r,n}}():void 0)},7032:function(t,e,n){var r=n(16),o=n(4427);t.exports=r?{}.toString:function(){return\"[object \"+o(this)+\"]\"}},2104:function(t,e,n){var r=n(8448),o=n(4328),i=n(1632),u=TypeError;t.exports=function(t,e){var n,a;if(\"string\"===e&&o(n=t.toString)&&!i(a=r(n,t)))return a;if(o(n=t.valueOf)&&!i(a=r(n,t)))return a;if(\"string\"!==e&&o(n=t.toString)&&!i(a=r(n,t)))return a;throw new u(\"Can't convert object to primitive value\")}},9252:function(t,e,n){var r=n(5232),o=n(1664),i=n(5048),u=n(9392),a=n(3951),c=o([].concat);t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=i.f(a(t)),n=u.f;return n?c(e,n(t)):e}},584:function(t,e,n){var r=n(8352).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},9092:function(t,e,n){var r=n(8448),o=n(3951),i=n(4328),u=n(1888),a=n(7680),c=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var s=r(n,t,e);return null!==s&&o(s),s}if(\"RegExp\"===u(t))return r(a,t,e);throw new c(\"RegExp#exec called on incompatible receiver\")}},7680:function(t,e,n){var r,o,i=n(8448),u=n(1664),a=n(5016),c=n(8872),s=n(3548),l=n(4696),f=n(9368),p=n(9104).get,h=n(8e3),d=n(9124),v=l(\"native-string-replace\",String.prototype.replace),y=RegExp.prototype.exec,g=y,m=u(\"\".charAt),b=u(\"\".indexOf),x=u(\"\".replace),w=u(\"\".slice),O=(o=/b*/g,i(y,r=/a/,\"a\"),i(y,o,\"a\"),0!==r.lastIndex||0!==o.lastIndex),S=s.BROKEN_CARET,E=void 0!==/()??/.exec(\"\")[1];(O||E||S||h||d)&&(g=function(t){var e,n,r,o,u,s,l,h=this,d=p(h),I=a(t),j=d.raw;if(j)return j.lastIndex=h.lastIndex,e=i(g,j,I),h.lastIndex=j.lastIndex,e;var C=d.groups,_=S&&h.sticky,A=i(c,h),P=h.source,R=0,T=I;if(_&&(A=x(A,\"y\",\"\"),-1===b(A,\"g\")&&(A+=\"g\"),T=w(I,h.lastIndex),h.lastIndex>0&&(!h.multiline||h.multiline&&\"\\n\"!==m(I,h.lastIndex-1))&&(P=\"(?: \"+P+\")\",T=\" \"+T,R++),n=new RegExp(\"^(?:\"+P+\")\",A)),E&&(n=new RegExp(\"^\"+P+\"$(?!\\\\s)\",A)),O&&(r=h.lastIndex),o=i(y,_?n:h,T),_?o?(o.input=w(o.input,R),o[0]=w(o[0],R),o.index=h.lastIndex,h.lastIndex+=o[0].length):h.lastIndex=0:O&&o&&(h.lastIndex=h.global?o.index+o[0].length:r),E&&o&&o.length>1&&i(v,o[0],n,(function(){for(u=1;u<arguments.length-2;u++)void 0===arguments[u]&&(o[u]=void 0)})),o&&C)for(o.groups=s=f(null),u=0;u<C.length;u++)s[(l=C[u])[0]]=o[l[1]];return o}),t.exports=g},8872:function(t,e,n){var r=n(3951);t.exports=function(){var t=r(this),e=\"\";return t.hasIndices&&(e+=\"d\"),t.global&&(e+=\"g\"),t.ignoreCase&&(e+=\"i\"),t.multiline&&(e+=\"m\"),t.dotAll&&(e+=\"s\"),t.unicode&&(e+=\"u\"),t.unicodeSets&&(e+=\"v\"),t.sticky&&(e+=\"y\"),e}},3548:function(t,e,n){var r=n(9957),o=n(6420).RegExp,i=r((function(){var t=o(\"a\",\"y\");return t.lastIndex=2,null!==t.exec(\"abcd\")})),u=i||r((function(){return!o(\"a\",\"y\").sticky})),a=i||r((function(){var t=o(\"^r\",\"gy\");return t.lastIndex=2,null!==t.exec(\"str\")}));t.exports={BROKEN_CARET:a,MISSED_STICKY:u,UNSUPPORTED_Y:i}},8e3:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\".\",\"s\");return!(t.dotAll&&t.test(\"\\n\")&&\"s\"===t.flags)}))},9124:function(t,e,n){var r=n(9957),o=n(6420).RegExp;t.exports=r((function(){var t=o(\"(?<a>b)\",\"g\");return\"b\"!==t.exec(\"b\").groups.a||\"bc\"!==\"b\".replace(t,\"$<a>c\")}))},5436:function(t,e,n){var r=n(9760),o=TypeError;t.exports=function(t){if(r(t))throw new o(\"Can't call method on \"+t);return t}},6504:function(t,e,n){var r=n(4696),o=n(7776),i=r(\"keys\");t.exports=function(t){return i[t]||(i[t]=o(t))}},3976:function(t,e,n){var r=n(7048),o=n(6420),i=n(4636),u=\"__core-js_shared__\",a=t.exports=o[u]||i(u,{});(a.versions||(a.versions=[])).push({version:\"3.36.0\",mode:r?\"pure\":\"global\",copyright:\"© 2014-2024 Denis Pushkarev (zloirock.ru)\",license:\"https://github.com/zloirock/core-js/blob/v3.36.0/LICENSE\",source:\"https://github.com/zloirock/core-js\"})},4696:function(t,e,n){var r=n(3976);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},9764:function(t,e,n){var r=n(1664),o=n(6180),i=n(5016),u=n(5436),a=r(\"\".charAt),c=r(\"\".charCodeAt),s=r(\"\".slice),l=function(t){return function(e,n){var r,l,f=i(u(e)),p=o(n),h=f.length;return p<0||p>=h?t?\"\":void 0:(r=c(f,p))<55296||r>56319||p+1===h||(l=c(f,p+1))<56320||l>57343?t?a(f,p):r:t?s(f,p,p+2):l-56320+(r-55296<<10)+65536}};t.exports={codeAt:l(!1),charAt:l(!0)}},772:function(t,e,n){var r=n(8504),o=n(9957),i=n(6420).String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol(\"symbol detection\");return!i(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},2495:function(t,e,n){var r=n(6180),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},4096:function(t,e,n){var r=n(5712),o=n(5436);t.exports=function(t){return r(o(t))}},6180:function(t,e,n){var r=n(1748);t.exports=function(t){var e=+t;return e!=e||0===e?0:r(e)}},7584:function(t,e,n){var r=n(6180),o=Math.min;t.exports=function(t){var e=r(t);return e>0?o(e,9007199254740991):0}},4356:function(t,e,n){var r=n(5436),o=Object;t.exports=function(t){return o(r(t))}},7024:function(t,e,n){var r=n(8448),o=n(1632),i=n(7728),u=n(4504),a=n(2104),c=n(9972),s=TypeError,l=c(\"toPrimitive\");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,c=u(t,l);if(c){if(void 0===e&&(e=\"default\"),n=r(c,t,e),!o(n)||i(n))return n;throw new s(\"Can't convert object to primitive value\")}return void 0===e&&(e=\"number\"),a(t,e)}},88:function(t,e,n){var r=n(7024),o=n(7728);t.exports=function(t){var e=r(t,\"string\");return o(e)?e:e+\"\"}},16:function(t,e,n){var r={};r[n(9972)(\"toStringTag\")]=\"z\",t.exports=\"[object z]\"===String(r)},5016:function(t,e,n){var r=n(4427),o=String;t.exports=function(t){if(\"Symbol\"===r(t))throw new TypeError(\"Cannot convert a Symbol value to a string\");return o(t)}},36:function(t){var e=String;t.exports=function(t){try{return e(t)}catch(n){return\"Object\"}}},7776:function(t,e,n){var r=n(1664),o=0,i=Math.random(),u=r(1..toString);t.exports=function(t){return\"Symbol(\"+(void 0===t?\"\":t)+\")_\"+u(++o+i,36)}},6536:function(t,e,n){var r=n(772);t.exports=r&&!Symbol.sham&&\"symbol\"==typeof Symbol.iterator},1576:function(t,e,n){var r=n(3476),o=n(9957);t.exports=r&&o((function(){return 42!==Object.defineProperty((function(){}),\"prototype\",{value:42,writable:!1}).prototype}))},4288:function(t,e,n){var r=n(6420),o=n(4328),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},9972:function(t,e,n){var r=n(6420),o=n(4696),i=n(5152),u=n(7776),a=n(772),c=n(6536),s=r.Symbol,l=o(\"wks\"),f=c?s.for||s:s&&s.withoutSetter||u;t.exports=function(t){return i(l,t)||(l[t]=a&&i(s,t)?s[t]:f(\"Symbol.\"+t)),l[t]}},6488:function(t,e,n){var r=n(5232),o=n(5152),i=n(3440),u=n(7e3),a=n(4024),c=n(9968),s=n(584),l=n(7512),f=n(8948),p=n(3480),h=n(3696),d=n(3476),v=n(7048);t.exports=function(t,e,n,y){var g=\"stackTraceLimit\",m=y?2:1,b=t.split(\".\"),x=b[b.length-1],w=r.apply(null,b);if(w){var O=w.prototype;if(!v&&o(O,\"cause\")&&delete O.cause,!n)return w;var S=r(\"Error\"),E=e((function(t,e){var n=f(y?e:t,void 0),r=y?new w(t):new w;return void 0!==n&&i(r,\"message\",n),h(r,E,r.stack,2),this&&u(O,this)&&l(r,this,E),arguments.length>m&&p(r,arguments[m]),r}));if(E.prototype=O,\"Error\"!==x?a?a(E,S):c(E,S,{name:!0}):d&&g in w&&(s(E,w,g),s(E,w,\"prepareStackTrace\")),c(E,w),!v)try{O.name!==x&&i(O,\"name\",x),O.constructor=E}catch(I){}return E}}},7476:function(t,e,n){var r=n(9160),o=n(9957),i=n(1432),u=n(1632),a=n(4356),c=n(3556),s=n(4316),l=n(92),f=n(2568),p=n(953),h=n(9972),d=n(8504),v=h(\"isConcatSpreadable\"),y=d>=51||!o((function(){var t=[];return t[v]=!1,t.concat()[0]!==t})),g=function(t){if(!u(t))return!1;var e=t[v];return void 0!==e?!!e:i(t)};r({target:\"Array\",proto:!0,arity:1,forced:!y||!p(\"concat\")},{concat:function(t){var e,n,r,o,i,u=a(this),p=f(u,0),h=0;for(e=-1,r=arguments.length;e<r;e++)if(g(i=-1===e?u:arguments[e]))for(o=c(i),s(h+o),n=0;n<o;n++,h++)n in i&&l(p,h,i[n]);else s(h+1),l(p,h++,i);return p.length=h,p}})},6932:function(t,e,n){var r=n(9160),o=n(3364).filter;r({target:\"Array\",proto:!0,forced:!n(953)(\"filter\")},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},700:function(t,e,n){var r=n(9160),o=n(1664),i=n(5712),u=n(4096),a=n(1496),c=o([].join);r({target:\"Array\",proto:!0,forced:i!==Object||!a(\"join\",\",\")},{join:function(t){return c(u(this),void 0===t?\",\":t)}})},4456:function(t,e,n){var r=n(9160),o=n(3364).map;r({target:\"Array\",proto:!0,forced:!n(953)(\"map\")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},4728:function(t,e,n){var r=n(9160),o=n(4356),i=n(3556),u=n(6728),a=n(4316);r({target:\"Array\",proto:!0,arity:1,forced:n(9957)((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],\"length\",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var e=o(this),n=i(e),r=arguments.length;a(n+r);for(var c=0;c<r;c++)e[n]=arguments[c],n++;return u(e,n),n}})},8752:function(t,e,n){var r=n(9160),o=n(6420),i=n(908),u=n(6488),a=\"WebAssembly\",c=o[a],s=7!==new Error(\"e\",{cause:7}).cause,l=function(t,e){var n={};n[t]=u(t,e,s),r({global:!0,constructor:!0,arity:1,forced:s},n)},f=function(t,e){if(c&&c[t]){var n={};n[t]=u(a+\".\"+t,e,s),r({target:a,stat:!0,constructor:!0,arity:1,forced:s},n)}};l(\"Error\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"EvalError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"RangeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"ReferenceError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"SyntaxError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"TypeError\",(function(t){return function(e){return i(t,this,arguments)}})),l(\"URIError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"CompileError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"LinkError\",(function(t){return function(e){return i(t,this,arguments)}})),f(\"RuntimeError\",(function(t){return function(e){return i(t,this,arguments)}}))},508:function(t,e,n){var r=n(3476),o=n(6208).EXISTS,i=n(1664),u=n(2544),a=Function.prototype,c=i(a.toString),s=/function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/,l=i(s.exec);r&&!o&&u(a,\"name\",{configurable:!0,get:function(){try{return l(s,c(this))[1]}catch(t){return\"\"}}})},232:function(t,e,n){var r=n(9160),o=n(9292);r({target:\"Object\",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},5443:function(t,e,n){var r=n(16),o=n(6076),i=n(7032);r||o(Object.prototype,\"toString\",i,{unsafe:!0})},880:function(t,e,n){var r=n(9160),o=n(7680);r({target:\"RegExp\",proto:!0,forced:/./.exec!==o},{exec:o})},9836:function(t,e,n){var r=n(8448),o=n(7176),i=n(3951),u=n(9760),a=n(7584),c=n(5016),s=n(5436),l=n(4504),f=n(4764),p=n(9092);o(\"match\",(function(t,e,n){return[function(e){var n=s(this),o=u(e)?void 0:l(e,t);return o?r(o,e,n):new RegExp(e)[t](c(n))},function(t){var r=i(this),o=c(t),u=n(e,r,o);if(u.done)return u.value;if(!r.global)return p(r,o);var s=r.unicode;r.lastIndex=0;for(var l,h=[],d=0;null!==(l=p(r,o));){var v=c(l[0]);h[d]=v,\"\"===v&&(r.lastIndex=f(o,a(r.lastIndex),s)),d++}return 0===d?null:h}]}))},3536:function(t,e,n){var r=n(9160),o=n(6420),i=n(6100),u=n(3951),a=n(4328),c=n(7796),s=n(2544),l=n(92),f=n(9957),p=n(5152),h=n(9972),d=n(336).IteratorPrototype,v=n(3476),y=n(7048),g=\"constructor\",m=\"Iterator\",b=h(\"toStringTag\"),x=TypeError,w=o[m],O=y||!a(w)||w.prototype!==d||!f((function(){w({})})),S=function(){if(i(this,d),c(this)===d)throw new x(\"Abstract class Iterator not directly constructable\")},E=function(t,e){v?s(d,t,{configurable:!0,get:function(){return e},set:function(e){if(u(this),this===d)throw new x(\"You can't redefine this property\");p(this,t)?this[t]=e:l(this,t,e)}}):d[t]=e};p(d,b)||E(b,m),!O&&p(d,g)&&d[g]!==Object||E(g,S),S.prototype=d,r({global:!0,constructor:!0,forced:O},{Iterator:S})},2144:function(t,e,n){var r=n(9160),o=n(8448),i=n(8952),u=n(3951),a=n(6752),c=n(9724),s=n(8696),l=n(7048),f=c((function(){for(var t,e,n=this.iterator,r=this.predicate,i=this.next;;){if(t=u(o(i,n)),this.done=!!t.done)return;if(e=t.value,s(n,r,[e,this.counter++],!0))return e}}));r({target:\"Iterator\",proto:!0,real:!0,forced:l},{filter:function(t){return u(this),i(t),new f(a(this),{predicate:t})}})},9080:function(t,e,n){var r=n(9160),o=n(5792);r({target:\"Iterator\",proto:!0,real:!0,forced:n(7048)},{map:o})}},n={};function r(t){var o=n[t];if(void 0!==o)return o.exports;var i=n[t]={exports:{}};return e[t].call(i.exports,i,i.exports,r),i.exports}r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if(\"object\"==typeof globalThis)return globalThis;try{return this||new Function(\"return this\")()}catch(t){if(\"object\"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})};var o={};return function(){r.r(o),r.d(o,{default:function(){return f}});r(8752),r(6932),r(700),r(4456),r(4728),r(508),r(232),r(5443),r(880),r(9836),r(3536),r(2144),r(9080);var t=r(680);r(7476);function e(t,n){return e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},e(t,n)}var n=function(n){var r,o;function i(){for(var t,e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return(t=n.call.apply(n,[this].concat(r))||this).state={bump:!1,debounced:!1},t}o=n,(r=i).prototype=Object.create(o.prototype),r.prototype.constructor=r,e(r,o);var u=i.prototype;return u.componentWillMount=function(){var t,e,n,r,o=this;this.debounceStatusUpdate=(t=function(){if(!o.state.debounced){var t=!o.props.isInFocus||o.props.validChoiceMade;o.setState((function(e){return{bump:!e.bump,debounced:!0,silenced:t}}))}},e=1400,function(){var o=this,i=arguments,u=n&&!r;clearTimeout(r),r=setTimeout((function(){r=null,n||t.apply(o,i)}),e),u&&t.apply(o,i)})},u.componentWillReceiveProps=function(t){t.queryLength;this.setState({debounced:!1})},u.render=function(){var e=this.props,n=e.id,r=e.length,o=e.queryLength,i=e.minQueryLength,u=e.selectedOption,a=e.selectedOptionIndex,c=e.tQueryTooShort,s=e.tNoResults,l=e.tSelectedOption,f=e.tResults,p=e.className,h=this.state,d=h.bump,v=h.debounced,y=h.silenced,g=o<i,m=0===r,b=u?l(u,r,a):\"\",x=null;return x=g?c(i):m?s():f(r,b),this.debounceStatusUpdate(),(0,t.createElement)(\"div\",{className:p,style:{border:\"0\",clip:\"rect(0 0 0 0)\",height:\"1px\",marginBottom:\"-1px\",marginRight:\"-1px\",overflow:\"hidden\",padding:\"0\",position:\"absolute\",whiteSpace:\"nowrap\",width:\"1px\"}},(0,t.createElement)(\"div\",{id:n+\"__status--A\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},!y&&v&&d?x:\"\"),(0,t.createElement)(\"div\",{id:n+\"__status--B\",role:\"status\",\"aria-atomic\":\"true\",\"aria-live\":\"polite\"},y||!v||d?\"\":x))},i}(t.Component);n.defaultProps={tQueryTooShort:function(t){return\"Type in \"+t+\" or more characters for results\"},tNoResults:function(){return\"No search results\"},tSelectedOption:function(t,e,n){return t+\" \"+(n+1)+\" of \"+e+\" is highlighted\"},tResults:function(t,e){return t+\" \"+(1===t?\"result\":\"results\")+\" \"+(1===t?\"is\":\"are\")+\" available. \"+e}};var i=function(e){var n=e.className;return(0,t.createElement)(\"svg\",{version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",className:n,focusable:\"false\"},(0,t.createElement)(\"g\",{stroke:\"none\",fill:\"none\",\"fill-rule\":\"evenodd\"},(0,t.createElement)(\"polygon\",{fill:\"#000000\",points:\"0 0 22 0 11 17\"})))};function u(){return u=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},u.apply(this,arguments)}function a(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}function c(t,e){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},c(t,e)}var s={13:\"enter\",27:\"escape\",32:\"space\",38:\"up\",40:\"down\"};function l(){return\"undefined\"!=typeof navigator&&!(!navigator.userAgent.match(/(iPod|iPhone|iPad)/g)||!navigator.userAgent.match(/AppleWebKit/g))}var f=function(e){var r,o;function i(t){var n;return(n=e.call(this,t)||this).elementReferences={},n.state={focused:null,hovered:null,menuOpen:!1,options:t.defaultValue?[t.defaultValue]:[],query:t.defaultValue,validChoiceMade:!1,selected:null,ariaHint:!0},n.handleComponentBlur=n.handleComponentBlur.bind(a(n)),n.handleKeyDown=n.handleKeyDown.bind(a(n)),n.handleUpArrow=n.handleUpArrow.bind(a(n)),n.handleDownArrow=n.handleDownArrow.bind(a(n)),n.handleEnter=n.handleEnter.bind(a(n)),n.handlePrintableKey=n.handlePrintableKey.bind(a(n)),n.handleListMouseLeave=n.handleListMouseLeave.bind(a(n)),n.handleOptionBlur=n.handleOptionBlur.bind(a(n)),n.handleOptionClick=n.handleOptionClick.bind(a(n)),n.handleOptionFocus=n.handleOptionFocus.bind(a(n)),n.handleOptionMouseDown=n.handleOptionMouseDown.bind(a(n)),n.handleOptionMouseEnter=n.handleOptionMouseEnter.bind(a(n)),n.handleInputBlur=n.handleInputBlur.bind(a(n)),n.handleInputChange=n.handleInputChange.bind(a(n)),n.handleInputClick=n.handleInputClick.bind(a(n)),n.handleInputFocus=n.handleInputFocus.bind(a(n)),n.pollInputElement=n.pollInputElement.bind(a(n)),n.getDirectInputChanges=n.getDirectInputChanges.bind(a(n)),n}o=e,(r=i).prototype=Object.create(o.prototype),r.prototype.constructor=r,c(r,o);var f=i.prototype;return f.isQueryAnOption=function(t,e){var n=this;return-1!==e.map((function(t){return n.templateInputValue(t).toLowerCase()})).indexOf(t.toLowerCase())},f.componentDidMount=function(){this.pollInputElement()},f.componentWillUnmount=function(){clearTimeout(this.$pollInput)},f.pollInputElement=function(){var t=this;this.getDirectInputChanges(),this.$pollInput=setTimeout((function(){t.pollInputElement()}),100)},f.getDirectInputChanges=function(){var t=this.elementReferences[-1];t&&t.value!==this.state.query&&this.handleInputChange({target:{value:t.value}})},f.componentDidUpdate=function(t,e){var n=this.state.focused,r=null===n,o=e.focused!==n;o&&!r&&this.elementReferences[n].focus();var i=-1===n,u=o&&null===e.focused;if(i&&u){var a=this.elementReferences[n];a.setSelectionRange(0,a.value.length)}},f.hasAutoselect=function(){return!l()&&this.props.autoselect},f.templateInputValue=function(t){var e=this.props.templates&&this.props.templates.inputValue;return e?e(t):t},f.templateSuggestion=function(t){var e=this.props.templates&&this.props.templates.suggestion;return e?e(t):t},f.handleComponentBlur=function(t){var e,n=this.state,r=n.options,o=n.query,i=n.selected;this.props.confirmOnBlur?(e=t.query||o,this.props.onConfirm(r[i])):e=o,this.setState({focused:null,menuOpen:t.menuOpen||!1,query:e,selected:null,validChoiceMade:this.isQueryAnOption(e,r)})},f.handleListMouseLeave=function(t){this.setState({hovered:null})},f.handleOptionBlur=function(t,e){var n=this.state,r=n.focused,o=n.menuOpen,i=n.options,u=n.selected,a=null===t.relatedTarget,c=t.relatedTarget===this.elementReferences[-1],s=r!==e&&-1!==r;if(!s&&a||!(s||c)){var f=o&&l();this.handleComponentBlur({menuOpen:f,query:this.templateInputValue(i[u])})}},f.handleInputBlur=function(t){var e=this.state,n=e.focused,r=e.menuOpen,o=e.options,i=e.query,u=e.selected;if(!(-1!==n)){var a=r&&l(),c=l()?i:this.templateInputValue(o[u]);this.handleComponentBlur({menuOpen:a,query:c})}},f.handleInputChange=function(t){var e=this,n=this.props,r=n.minLength,o=n.source,i=n.showAllValues,u=this.hasAutoselect(),a=t.target.value,c=0===a.length,s=this.state.query!==a,l=a.length>=r;this.setState({query:a,ariaHint:c}),i||!c&&s&&l?o(a,(function(t){var n=t.length>0;e.setState({menuOpen:n,options:t,selected:u&&n?0:-1,validChoiceMade:!1})})):!c&&l||this.setState({menuOpen:!1,options:[]})},f.handleInputClick=function(t){this.handleInputChange(t)},f.handleInputFocus=function(t){var e=this.state,n=e.query,r=e.validChoiceMade,o=e.options,i=this.props.minLength,u=!r&&n.length>=i&&o.length>0;u?this.setState((function(t){var e=t.menuOpen;return{focused:-1,menuOpen:u||e,selected:-1}})):this.setState({focused:-1})},f.handleOptionFocus=function(t){this.setState({focused:t,hovered:null,selected:t})},f.handleOptionMouseEnter=function(t,e){l()||this.setState({hovered:e})},f.handleOptionClick=function(t,e){var n=this.state.options[e],r=this.templateInputValue(n);this.props.onConfirm(n),this.setState({focused:-1,hovered:null,menuOpen:!1,query:r,selected:-1,validChoiceMade:!0}),this.forceUpdate()},f.handleOptionMouseDown=function(t){t.preventDefault()},f.handleUpArrow=function(t){t.preventDefault();var e=this.state,n=e.menuOpen,r=e.selected;-1!==r&&n&&this.handleOptionFocus(r-1)},f.handleDownArrow=function(t){var e=this;if(t.preventDefault(),this.props.showAllValues&&!1===this.state.menuOpen)t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t,selected:0,focused:0,hovered:null})}));else if(!0===this.state.menuOpen){var n=this.state,r=n.menuOpen,o=n.options,i=n.selected;i!==o.length-1&&r&&this.handleOptionFocus(i+1)}},f.handleSpace=function(t){var e=this;this.props.showAllValues&&!1===this.state.menuOpen&&\"\"===this.state.query&&(t.preventDefault(),this.props.source(\"\",(function(t){e.setState({menuOpen:!0,options:t})}))),-1!==this.state.focused&&(t.preventDefault(),this.handleOptionClick(t,this.state.focused))},f.handleEnter=function(t){this.state.menuOpen&&(t.preventDefault(),this.state.selected>=0&&this.handleOptionClick(t,this.state.selected))},f.handlePrintableKey=function(t){var e=this.elementReferences[-1];t.target===e||e.focus()},f.handleKeyDown=function(t){switch(s[t.keyCode]){case\"up\":this.handleUpArrow(t);break;case\"down\":this.handleDownArrow(t);break;case\"space\":this.handleSpace(t);break;case\"enter\":this.handleEnter(t);break;case\"escape\":this.handleComponentBlur({query:this.state.query});break;default:((e=t.keyCode)>47&&e<58||32===e||8===e||e>64&&e<91||e>95&&e<112||e>185&&e<193||e>218&&e<223)&&this.handlePrintableKey(t)}var e},f.render=function(){var e,r=this,o=this.props,i=o.cssNamespace,a=o.displayMenu,c=o.id,s=o.minLength,f=o.name,p=o.placeholder,h=o.required,d=o.showAllValues,v=o.tNoResults,y=o.tStatusQueryTooShort,g=o.tStatusNoResults,m=o.tStatusSelectedOption,b=o.tStatusResults,x=o.tAssistiveHint,w=o.dropdownArrow,O=o.menuAttributes,S=o.inputClasses,E=o.hintClasses,I=o.menuClasses,j=this.state,C=j.focused,_=j.hovered,A=j.menuOpen,P=j.options,R=j.query,T=j.selected,k=j.ariaHint,M=j.validChoiceMade,D=this.hasAutoselect(),N=-1===C,F=0===P.length,L=0!==R.length,B=R.length>=s,q=this.props.showNoOptionsFound&&N&&F&&L&&B,V=i+\"__wrapper\",U=i+\"__status\",K=i+\"__dropdown-arrow-down\",H=-1!==C&&null!==C,W=i+\"__option\",z=i+\"__hint\",Q=this.templateInputValue(P[T]),G=Q&&0===Q.toLowerCase().indexOf(R.toLowerCase())&&D?R+Q.substr(R.length):\"\",$=c+\"__assistiveHint\",Y={\"aria-describedby\":k?$:null,\"aria-expanded\":A?\"true\":\"false\",\"aria-activedescendant\":H?c+\"__option--\"+C:null,\"aria-controls\":c+\"__listbox\",\"aria-autocomplete\":this.hasAutoselect()?\"both\":\"list\"};d&&\"string\"==typeof(e=w({className:K}))&&(e=(0,t.createElement)(\"div\",{className:i+\"__dropdown-arrow-down-wrapper\",dangerouslySetInnerHTML:{__html:e}}));var X=i+\"__input\",J=[X,this.props.showAllValues?X+\"--show-all-values\":X+\"--default\"];null!==C&&J.push(X+\"--focused\"),S&&J.push(S);var Z=i+\"__menu\",tt=[Z,Z+\"--\"+a,Z+\"--\"+(A||q?\"visible\":\"hidden\")];I&&tt.push(I),(null!=O&&O.class||null!=O&&O.className)&&tt.push((null==O?void 0:O.class)||(null==O?void 0:O.className));var et=Object.assign({\"aria-labelledby\":c},O,{id:c+\"__listbox\",role:\"listbox\",className:tt.join(\" \"),onMouseLeave:this.handleListMouseLeave});return delete et.class,(0,t.createElement)(\"div\",{className:V,onKeyDown:this.handleKeyDown},(0,t.createElement)(n,{id:c,length:P.length,queryLength:R.length,minQueryLength:s,selectedOption:this.templateInputValue(P[T]),selectedOptionIndex:T,validChoiceMade:M,isInFocus:null!==this.state.focused,tQueryTooShort:y,tNoResults:g,tSelectedOption:m,tResults:b,className:U}),G&&(0,t.createElement)(\"span\",null,(0,t.createElement)(\"input\",{className:[z,null===E?S:E].filter(Boolean).join(\" \"),readonly:!0,tabIndex:\"-1\",value:G})),(0,t.createElement)(\"input\",u({},Y,{autoComplete:\"off\",className:J.join(\" \"),id:c,onClick:this.handleInputClick,onBlur:this.handleInputBlur},{onChange:this.handleInputChange},{onFocus:this.handleInputFocus,name:f,placeholder:p,ref:function(t){r.elementReferences[-1]=t},type:\"text\",role:\"combobox\",required:h,value:R})),e,(0,t.createElement)(\"ul\",et,P.map((function(e,n){var o=(-1===C?T===n:C===n)&&null===_?\" \"+W+\"--focused\":\"\",i=n%2?\" \"+W+\"--odd\":\"\",u=l()?\"<span id=\"+c+\"__option-suffix--\"+n+' style=\"border:0;clip:rect(0 0 0 0);height:1px;marginBottom:-1px;marginRight:-1px;overflow:hidden;padding:0;position:absolute;whiteSpace:nowrap;width:1px\"> '+(n+1)+\" of \"+P.length+\"</span>\":\"\";return(0,t.createElement)(\"li\",{\"aria-selected\":C===n?\"true\":\"false\",className:\"\"+W+o+i,dangerouslySetInnerHTML:{__html:r.templateSuggestion(e)+u},id:c+\"__option--\"+n,key:n,onBlur:function(t){return r.handleOptionBlur(t,n)},onClick:function(t){return r.handleOptionClick(t,n)},onMouseDown:r.handleOptionMouseDown,onMouseEnter:function(t){return r.handleOptionMouseEnter(t,n)},ref:function(t){r.elementReferences[n]=t},role:\"option\",tabIndex:\"-1\",\"aria-posinset\":n+1,\"aria-setsize\":P.length})})),q&&(0,t.createElement)(\"li\",{className:W+\" \"+W+\"--no-results\",role:\"option\",\"aria-disabled\":\"true\"},v())),(0,t.createElement)(\"span\",{id:$,style:{display:\"none\"}},x()))},i}(t.Component);f.defaultProps={autoselect:!1,cssNamespace:\"autocomplete\",defaultValue:\"\",displayMenu:\"inline\",minLength:0,name:\"input-autocomplete\",placeholder:\"\",onConfirm:function(){},confirmOnBlur:!0,showNoOptionsFound:!0,showAllValues:!1,required:!1,tNoResults:function(){return\"No results found\"},tAssistiveHint:function(){return\"When autocomplete results are available use up and down arrows to review and enter to select. Touch device users, explore by touch or with swipe gestures.\"},dropdownArrow:i,menuAttributes:{},inputClasses:null,hintClasses:null,menuClasses:null}}(),o}()}));\n//# sourceMappingURL=accessible-autocomplete.react.min.js.map","module.exports = require('./dist/lib/accessible-autocomplete.react.min')\n","import React, { useEffect, useRef, useState } from \"react\";\nimport Autocomplete from \"accessible-autocomplete/react\";\nimport { Icon } from \"design-react-kit\";\n\nconst AccessibleAutocomplete = ({\n value,\n defaultValue = \"\",\n onConfirm,\n source,\n disabled,\n onClear,\n tClearInput = () => \"Clear input\",\n ...autocompleteProps\n}) => {\n const inputRef = useRef(null);\n\n const updateInputValue = (val) => {\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.elementReferences[-1].value = val;\n }\n }, 0);\n };\n\n useEffect(() => {\n if (value !== undefined) {\n updateInputValue(value);\n }\n }, [value]);\n\n useEffect(() => {\n if (disabled) {\n if (inputRef.current) {\n inputRef.current.elementReferences[-1].disabled = true;\n }\n } else {\n if (inputRef.current) {\n inputRef.current.elementReferences[-1].disabled = false;\n }\n }\n }, [disabled]);\n\n const handleClear = () => {\n onClear && onClear();\n };\n\n const handleSource = (query, populateResults) => {\n if (\n inputRef.current.elementReferences[\"-1\"].classList.contains(\n \"autocomplete__input--focused\",\n )\n ) {\n source(query, populateResults);\n }\n };\n\n const handleOnConfirm = (selectedValue) => {\n if (selectedValue) {\n onConfirm(selectedValue);\n } else {\n updateInputValue(value);\n }\n };\n\n return (\n <div style={{ position: \"relative\", width: \"100%\" }}>\n <Autocomplete\n ref={inputRef}\n {...autocompleteProps}\n defaultValue={defaultValue}\n onConfirm={handleOnConfirm}\n source={handleSource}\n />\n\n {Boolean(value && value.length > 0 && !disabled) && (\n <button\n onClick={handleClear}\n style={{\n position: \"absolute\",\n right: \"0px\",\n top: \"50%\",\n transform: \"translateY(-50%)\",\n background: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n padding: 0,\n }}\n aria-label={tClearInput()}\n >\n <Icon icon=\"it-close\" size=\"sm\" title={tClearInput()} />\n </button>\n )}\n </div>\n );\n};\n\nexport default AccessibleAutocomplete;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcY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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC\"","import React, { useEffect, useRef, useState } from \"react\";\n//import \"leaflet/dist/leaflet.css\";\nimport Leaflet from \"leaflet\";\nimport L from \"leaflet\";\nimport { geoJSON, tileLayer } from \"leaflet\";\nimport iconRetinaUrl from \"leaflet/dist/images/marker-icon-2x.png\";\nimport iconUrl from \"leaflet/dist/images/marker-icon.png\";\nimport shadowUrl from \"leaflet/dist/images/marker-shadow.png\";\n\nconst Map = ({ position, areasLayer, bounds, onMarkedMoved }) => {\n const mapRef = useRef(null);\n let marker = null;\n const [polygon, setPolygon] = useState([]);\n const streetMaps = tileLayer(\n \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\",\n {\n // detectRetina: true,\n attribution:\n '© <a href=\"https://www.openstreetmap.org/copyright\">OpenStreetMap</a>',\n },\n );\n const defaultPosition = [41.9, 12.5];\n\n const initMap = () => {\n const map = Leaflet.map(mapRef.current, {\n keyboard: false,\n minZoom: 6,\n maxZoom: 17,\n }).setView(defaultPosition, 10);\n // map.scrollWheelZoom.disable()\n streetMaps.addTo(map);\n\n areasLayer &&\n areasLayer.map((layer) => {\n layer.addTo(map);\n });\n const centerMarker = position\n ? [`${position.lat}`, `${position.lon}`]\n : bounds\n ? bounds.getCenter()\n : defaultPosition;\ndelete L.Icon.Default.prototype._getIconUrl;\nL.Icon.Default.mergeOptions({\n iconRetinaUrl,\n iconUrl,\n shadowUrl\n});\n marker = L.marker(centerMarker, { draggable: true }).addTo(map);\n\n marker.on(\"moveend\", function (event) {\n const position = event.target.getLatLng();\n onMarkedMoved(position, marker);\n });\n if (!position && bounds) {\n map.fitBounds(bounds);\n } else {\n const newLatLng = position\n ? [position.lat, position.lon]\n : defaultPosition;\n if (marker) {\n marker.setLatLng(newLatLng).update();\n map.setView(newLatLng, 15);\n }\n }\n };\n\n useEffect(() => {\n if (mapRef.current) {\n initMap();\n }\n }, [mapRef]);\n return (\n <div\n className=\"d-block\"\n style={{ height: \"60vh\", width: \"100%\", display: \"block\" }}\n >\n <div\n ref={mapRef}\n style={{ height: \"100%\", width: \"100%\" }}\n aria-hidden={true}\n />\n </div>\n );\n};\nexport default Map;\n","import editForm from \"./AddressMap.form\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport {\n Button,\n Icon,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n Progress,\n} from \"design-react-kit\";\nimport { baseUrl } from \"../../_helpers/BaseUrl\";\nimport AccessibleAutocomplete from \"../../components/AccessibleAutocomplete\";\nimport L from \"leaflet\";\nimport _, { debounce } from \"lodash\";\nimport Map from \"./Map\";\nimport Swal from \"sweetalert2\";\nimport { locationNameFormatter } from \"../../_helpers/utilities\";\n\nconst Field = Formio.Components.components.field;\n\nexport const ReactAddressMap = ({\n component,\n value,\n current,\n onChange,\n i18next,\n}) => {\n const [position, setPosition] = useState(null);\n const [optionSuggestions, setOptionSuggestions] = useState([]);\n const [boundingBox, setBoundingBox] = useState();\n const [areasLayer, setAreasLayer] = useState();\n // const [geographicAreas, setGeographicAreas] = useState();\n const [chechingMarkerPosition, setChechingMarkerPosition] = useState(false);\n const [geographicAreasIds, setGeographicAreasIds] = useState();\n const [loadingSuggestions, setLoadingSuggestions] = useState(false);\n const [allBounds, setAllBounds] = useState();\n const [modalMarkerPosition, setModalMarkerPosition] = useState();\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n const [autocompleteValue, setAutocompleteValue] = useState(\"\");\n\n\n //Modal messages state\n const [message, setMessage] = useState('');\n const [isOpenModalMessages, setModalMessages] = useState(false);\n const [isOpen, toggleModal] = useState(false);\n\n const queryParams = new URLSearchParams(window.location.search);\n const areaIdParam = queryParams.get(\"area\");\n const { geographic_areas_id } = window.OC_SERVICE_DETAILS;\n\n const lastQuery = useRef();\n const language = i18next.language;\n let all_bounds = L.latLngBounds();\n\n //use areaId to filter geographicAreas by id\n const areaId = areaIdParam\n ? areaIdParam\n : geographic_areas_id && geographic_areas_id.length > 0\n ? geographic_areas_id\n : undefined;\n\n const fetchLocations = (query, populateResults) => {\n lastQuery.current = query;\n const apiUrl = `https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(query)}&countrycodes=it&viewbox=${boundingBox}&bounded=1&addressdetails=1&limit=14&format=jsonv2&accept-language=${language}`;\n let currentSuggestions = [];\n let currentSuggestionsLabel = [];\n setLoadingSuggestions(true);\n fetch(apiUrl)\n .then((response) => response.json())\n .then((data) => {\n if (data.length && lastQuery.current === query) {\n setLoadingSuggestions(true);\n const fetchPromises = data.map((location, index) => {\n const { lat, lon } = location;\n const url = `${baseUrl()}/api/geographic-areas/contains?lat=${lat}&lon=${lon}&geographic_areas_ids=${geographicAreasIds.join(\",\")}`;\n return fetch(url)\n .then((areaResponse) => areaResponse.json())\n .then((areaData) => {\n if (areaData.result) {\n location.label = locationNameFormatter(location);\n return location; // Return the location object\n }\n return null; // Return null if the geographic check fails\n });\n });\n // Wait for all promises to resolve\n return Promise.all(fetchPromises);\n } else {\n // Handle no results from the initial API call\n if (lastQuery.current === query) {\n populateResults([]);\n setLoadingSuggestions(false);\n }\n }\n })\n .then((validLocations) => {\n validLocations = validLocations\n ? validLocations.filter((location) => location !== null)\n : [];\n if (validLocations.length > 0) {\n validLocations.forEach((location, index) => {\n validLocations[index].label = locationNameFormatter(location);\n });\n validLocations = _.uniqWith(\n validLocations,\n (a, c) => a.label === c.label,\n );\n validLocations.forEach((location, index) => {\n currentSuggestionsLabel.push(location.label);\n currentSuggestions.push(location);\n });\n if (lastQuery.current === query) {\n populateResults(currentSuggestionsLabel);\n setOptionSuggestions(currentSuggestions);\n setLoadingSuggestions(false);\n }\n } else {\n if (lastQuery.current === query) {\n populateResults([]);\n setLoadingSuggestions(false);\n }\n }\n })\n .catch((error) => {\n console.error(\"Error fetching locations:\", error);\n setLoadingSuggestions(false);\n });\n };\n const suggest = (query, populateResults) => {\n fetchLocations(query, populateResults);\n };\n\n const fetchReverseGeocoding = (position, marker) => {\n const { lat, lng } = position;\n const url = `https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=${lat}&lon=${lng}&accept-language=${language}`;\n fetch(url)\n .then((response) => response.json())\n .then((data) => {\n if (data && data.display_name) {\n data.label = locationNameFormatter(data);\n data.lat = lat;\n data.lon = lng;\n if(!marker){\n setModalMarkerPosition(data);\n return\n }else{\n marker.bindPopup(`${data.label}`).openPopup();\n setModalMarkerPosition(data);\n }\n\n }\n })\n .catch((error) => console.error(\"Error with reverse geocoding:\", error));\n };\n\n function getLocation() {\n navigator.geolocation.getCurrentPosition(\n (position) => {\n let lat = position.coords.latitude;\n let lon = position.coords.longitude;\n const geographic_areas_ids = geographicAreasIds || [];\n\n if (geographic_areas_ids.length > 0) {\n const url = `${baseUrl()}/api/geographic-areas/contains?lat=${lat}&lon=${lon}&geographic_areas_ids=${geographicAreasIds.join(\",\")}`;\n fetch(url)\n .then((response) => response.json())\n .then((data) => {\n if (!data.result) {\n //setModalMessages(!isOpenModalMessages);\n //setMessage(i18next.t('error_message_position'));\n toggleModal(!isOpen)\n } else { \n setPosition({ lat: lat, lon: lon });\n fetchReverseGeocoding({ lat: lat, lng: lon });\n toggleModal(!isOpen)\n }\n })\n } else {\n setPosition({ lat: lat, lon: lon });\n fetchReverseGeocoding({ lat: lat, lng: lon });\n toggleModal(!isOpen)\n }\n },\n (errors) => {\n if (errors?.code === 1) {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_code_1'));\n } else if (errors?.code === 2) {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_code_2'));\n } else if (errors?.code === 3) {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_code_3'));\n } else {\n setModalMessages(!isOpenModalMessages);\n setMessage(i18next.t('error_message_generic'));\n }\n }\n );\n }\n\n useEffect(() => {\n if (value) {\n setPosition(value);\n }\n if (current.valuePosition) {\n setPosition(current.valuePosition);\n }\n }, [value, current]);\n\n const saveRenderData = () => {\n if (value) {\n setPosition(value);\n }\n if (current.valuePosition) {\n setPosition(current.valuePosition);\n }\n };\n\n useEffect(() => {\n window?.Formio?.formioReady.then(() => {\n setTimeout(() => {\n //console.log(component, current);\n saveRenderData();\n initComponent();\n }, 1);\n });\n }, []);\n\n const initComponent = () => {\n let baseUrlApi = baseUrl();\n let urlGeographicAreas = `${baseUrlApi}/api/geographic-areas`;\n let geographic_areas_ids = [];\n let geographic_areas = [];\n let areas_layer = [];\n fetch(urlGeographicAreas)\n .then((response) => response.json())\n .then((data) => {\n if (Array.isArray(data) && data.length > 0) {\n data\n .filter((area) =>\n areaId\n ? Array.isArray(areaId)\n ? areaId.includes(area.id)\n : area.id === areaId\n : true,\n )\n .forEach((geo) => {\n geographic_areas_ids.push(geo.id);\n const geofence = JSON.parse(geo.geofence);\n geographic_areas.push(geofence);\n const geoJsonLayer = L.geoJSON(geofence, {\n style: {\n color: \"#3478bd\",\n fillColor: \"#87CEEB\",\n fillOpacity: 0.2,\n weight: 1.5,\n },\n filter: function (feature) {\n return (\n feature.geometry.type === \"Polygon\" ||\n feature.geometry.type === \"MultiPolygon\"\n );\n },\n });\n all_bounds.extend(geoJsonLayer.getBounds());\n areas_layer.push(geoJsonLayer);\n });\n setAreasLayer(areas_layer);\n // setGeographicAreas(geographic_areas)\n setGeographicAreasIds(geographic_areas_ids);\n setAllBounds(all_bounds);\n const bbNE = all_bounds.getNorthEast();\n const bbSW = all_bounds.getSouthWest();\n\n setBoundingBox([bbNE.lng, bbNE.lat, bbSW.lng, bbSW.lat]);\n } else {\n console.log(\"No geographic_areas_ids found.\");\n }\n })\n .catch((error) => {\n console.error(\"Error with reverse geocoding:\", error);\n });\n };\n\n const updateAutocompleteValue = () => {\n setAutocompleteValue(position?.label ? position.label : \"\");\n };\n\n useEffect(() => {\n updateAutocompleteValue();\n onChange(position);\n }, [position]);\n\n useEffect(() => {\n if (\n document.querySelector(\".formio-read-only\") &&\n renderDataReadOnly === false\n ) {\n setRenderDataReadOnly(true);\n } else {\n setRenderDataReadOnly(false);\n }\n }, []);\n\n const onSaveMapLocation = () => {\n if (modalMarkerPosition) {\n const url = `${baseUrl()}/api/geographic-areas/contains?lat=${modalMarkerPosition.lat}&lon=${modalMarkerPosition.lon}&geographic_areas_ids=${geographicAreasIds.join(\",\")}`;\n setChechingMarkerPosition(true);\n fetch(url)\n .then((response) => response.json())\n .then((data) => {\n setChechingMarkerPosition(false);\n if (data) {\n if (data.result === false) {\n Swal.fire({\n title: \"\",\n html:\n \"<p>\" +\n i18next.t(\n \"Attenzione: Il luogo selezionato si trova al di fuori dell’area coperta dal servizio. Per favore, scegli un luogo all'interno dell'area evidenziata nella mappa.\",\n ) +\n \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n } else if (data.result === true) {\n toggleModal(!isOpen);\n setPosition(modalMarkerPosition);\n }\n } else {\n setChechingMarkerPosition(false);\n console.log(\"No geographic-areas/contains .\");\n }\n })\n .catch((error) => {\n console.error(\"Error with geographic-areas/contains:\", error);\n Swal.fire({\n title: \"\",\n html: \"<p>\" + error + \"</p>\",\n icon: \"error\",\n cancelButtonText: i18next.t(\"Chiudi\"),\n showCancelButton: true,\n showConfirmButton: false,\n });\n });\n }\n };\n\n return (\n <div>\n <div\n id={`address-map-container-${component.key}`}\n className=\"address-map-container\"\n >\n <div>\n <Modal\n wrapClassName={\"formio-component-address_map\"}\n isOpen={isOpen}\n size={\"lg\"}\n scrollable\n toggle={() => toggleModal(!isOpen)}\n labelledBy=\"esempio2\"\n container={document.body}\n >\n <ModalHeader toggle={() => toggleModal(!isOpen)} id=\"esempio2\">\n {i18next.t(\"Individua il luogo sulla mappa\")}\n </ModalHeader>\n <ModalBody>\n <p>\n <small>\n {i18next.t(\n \"Trascina l’icona nel punto preciso in cui si verifica l’evento che vuoi segnalare e fai click su Salva indirizzo\",\n )}\n </small>\n </p>\n <Map\n position={position}\n areasLayer={areasLayer}\n bounds={allBounds}\n onMarkedMoved={(position, marker) => {\n fetchReverseGeocoding(position, marker);\n }}\n />\n </ModalBody>\n <ModalFooter>\n <Button color=\"secondary\" onClick={() => toggleModal(!isOpen)}>\n {i18next.t(\"Chiudi\")}\n </Button>\n <Button\n color=\"primary\"\n onClick={() => {\n onSaveMapLocation();\n }}\n disabled={!modalMarkerPosition || chechingMarkerPosition}\n >\n {i18next.t(\"Salva indirizzo\")}\n </Button>\n </ModalFooter>\n </Modal>\n </div>\n <div>\n <Modal\n isOpen={isOpenModalMessages}\n toggle={() => setModalMessages(!isOpenModalMessages)}\n withIcon\n labelledBy=\"error-modal-message\"\n container={document.body}\n >\n <ModalHeader icon=\"it-info-circle\" id=\"error-modal-message\">\n {i18next.t('warning')}\n </ModalHeader>\n <ModalBody>\n <p>{message}</p>\n </ModalBody>\n <ModalFooter>\n <Button color=\"primary\" onClick={() => setModalMessages(!isOpenModalMessages)}>\n {i18next.t('close')}\n </Button>\n </ModalFooter>\n </Modal>\n </div>\n <div className=\"position-relative\">\n <AccessibleAutocomplete\n id={`${component.id}-${component.key}`}\n inputClasses=\"form-control\"\n source={debounce(suggest, 520)}\n onConfirm={(value) => {\n setLoadingSuggestions(false);\n lastQuery.current = \"\";\n if (value) {\n if (value === \"\") {\n setPosition(null);\n }\n let pos = optionSuggestions.find(\n (item) => item.label === value,\n );\n setPosition(pos);\n }\n }}\n onClear={() => {\n setLoadingSuggestions(false);\n lastQuery.current = \"\";\n setPosition(null);\n }}\n dropdownArrow={() => null}\n minLength={3}\n disabled={renderDataReadOnly}\n confirmOnBlur={true}\n showNoOptionsFound={!loadingSuggestions}\n defaultValue={position?.label}\n value={autocompleteValue}\n tNoResults={() =>\n i18next.t(\n \"Nessun risultato trovato, prova a inserire l'indirizzo completo\",\n )\n }\n tClearInput={() => i18next.t(\"Clear input\")}\n />\n {loadingSuggestions && (\n <div\n className=\"position-absolute\"\n style={{\n width: \"100%\",\n bottom: \"0px\",\n }}\n >\n <Progress indeterminate label=\"In elaborazione...\" />\n </div>\n )}\n </div>\n {!renderDataReadOnly && (\n <Button\n // tag=\"input\"\n type=\"button\"\n value={i18next.t(\"Individua con precisione sulla mappa\")}\n onClick={() => {\n if (/Mobi|Android/i.test(navigator.userAgent)) {\n getLocation();\n }else{\n toggleModal(true);\n setModalMarkerPosition(false);\n }\n\n }}\n icon\n className=\"px-0 primary-color\"\n >\n <Icon color=\"primary\" icon=\"it-map-marker-circle\" role={'presentation'}/>\n <span>{i18next.t(\"Individua con precisione sulla mappa\")}</span>\n </Button>\n )}\n </div>\n </div>\n );\n};\n\nexport default class FormioAddressMap extends Field {\n constructor(component, options, data) {\n super(component, options, data);\n }\n /**\n * This function tells the form builder about your component. It's name, icon and what group it should be in.\n *\n * @returns {{title: string, icon: string, group: string, documentation: string, weight: number, schema: *}}\n */\n static get builderInfo() {\n return {\n title: \"Address Map\",\n group: \"basic\",\n icon: \"bi bi-map\",\n documentation: \"\",\n weight: 70,\n schema: FormioAddressMap.schema(),\n };\n }\n\n /**\n * This function is the default settings for the component. At a minimum you want to set the type to the registered\n * type of your component (i.e. when you call Components.setComponent('type', MyComponent) these types should match.\n *\n * @param sources\n * @returns {*}\n */\n static schema() {\n return Field.schema({\n type: \"address_map\",\n });\n }\n\n /*\n * Defines the settingsForm when editing a component in the builder.\n */\n static editForm = editForm;\n\n /**\n * This function is called when the DIV has been rendered and added to the DOM. You can now instantiate the react component.\n *\n * @param DOMElement\n * #returns ReactInstance\n */\n attach(element) {\n return super.attach(element).then(() => {\n this.loadRefs(this.element, {\n [`react-${this.id}`]: \"single\",\n });\n\n const reactRoot = this.refs[`react-${this.id}`];\n if (!reactRoot) {\n return this;\n }\n\n this.rootComponent = createRoot(reactRoot);\n this.rootComponent.render(\n <ReactAddressMap\n key={this.dataValue}\n component={this.component} // These are the component settings if you want to use them to render the component.\n value={this.dataValue} // The starting value of the component.\n onChange={(e) => this.setValue(e)} // The onChange event to call when the value changes.\n {...this}\n current={this}\n />,\n );\n\n return this;\n });\n }\n\n detach() {\n if (this.rootComponent) {\n this.rootComponent.unmount();\n this.rootComponent = null;\n }\n\n return super.detach();\n }\n\n setValue(value) {\n this.valuePosition = value;\n this.updateValue(value);\n\n }\n\n getValue() {\n return this.valuePosition;\n return super.getValue();\n // return super.getValue();\n }\n\n /**\n * Called immediately after the component has been instantiated to initialize\n * the component.\n */\n init() {\n super.init();\n }\n\n /**\n * The second phase of component building where the component is rendered as an HTML string.\n *\n * @returns {string} - The return is the full string of the component\n */\n render() {\n // For react components, we simply render as a div which will become the react instance.\n // By calling super.render(string) it will wrap the component with the needed wrappers to make it a full component.\n return super.render(`<div ref=\"react-${this.id}\"></div>`);\n }\n}\n","import { baseUrl } from \"../../_helpers/BaseUrl\";\n\nexport default [\n {\n key: \"labelPosition\",\n ignore: true,\n },\n {\n key: \"placeholder\",\n ignore: true,\n },\n {\n key: \"description\",\n ignore: true,\n },\n {\n key: \"hideLabel\",\n ignore: true,\n },\n {\n key: \"autofocus\",\n ignore: true,\n },\n {\n key: \"tooltip\",\n ignore: true,\n },\n {\n key: \"tabindex\",\n ignore: true,\n },\n {\n key: \"disabled\",\n ignore: true,\n },\n {\n label: \"Base url\",\n calculateValue: \"let url = '\" + baseUrl() + \"'; data.url = url; value=url;\",\n key: \"url\",\n type: \"hidden\",\n input: true,\n weight: 1,\n }\n];\n","import { Components } from \"@formio/react\";\nimport ListServicesEdit from \"./ListServices.edit.display\";\nexport default function (...extend) {\n return Components.baseEditForm(\n [\n {\n key: \"display\",\n components: ListServicesEdit,\n },\n ],\n ...extend,\n );\n}\n","import editForm from \"./ListServices.form\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { Formio } from \"@formio/js\";\nimport { createRoot } from \"react-dom/client\";\nimport \"moment/locale/it\";\nimport \"moment/locale/en-gb\";\nimport \"moment/locale/de\";\nimport { Container, Row, Col, Input } from \"design-react-kit\";\nimport { addParamToUrl } from \"../../functions/utils\";\nimport DOMPurify from \"dompurify\";\nimport { clearCalendarViewState } from \"../CalendarAdvanced/calendarUtility\";\n\nconst InputFormIO = Formio.Components.components.input;\n\nexport const ReactListServices = ({ component, current, onChange, i18next }) => {\n const CACHE_KEY = \"list-services\";\n const CACHE_SELECTED_CATEGORY = \"selected-category\";\n\n const [data, setData] = useState([]);\n const [dataFiltered, setDataFiltered] = useState([]);\n const [selectedCategoryName, setSelectedCategoryName] = useState(null); // ✅ categoria per chiave stabile\n const [selectedService, setSelectedService] = useState(null);\n const [searchQuery, setSearchQuery] = useState(\"\"); // ✅ search controllata\n const [renderDataReadOnly, setRenderDataReadOnly] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const didFetch = useRef(false);\n const componentRef = useRef();\n\n // ✅ Categoria selezionata derivata (prima da dataFiltered, poi da data)\n const selectedCategory = useMemo(() => {\n if (!selectedCategoryName) return null;\n\n const fromFiltered = dataFiltered.find((c) => c.name === selectedCategoryName);\n if (fromFiltered) return fromFiltered;\n\n const fromAll = data.find((c) => c.name === selectedCategoryName);\n return fromAll || null;\n }, [selectedCategoryName, dataFiltered, data]);\n\n // ✅ Servizi della categoria selezionata\n const filteredServices = useMemo(() => {\n return selectedCategory?.services || [];\n }, [selectedCategory]);\n\n // 🔹 Caricamento iniziale (cache o API)\n const loadData = async () => {\n setLoading(true);\n\n const cachedData = sessionStorage.getItem(CACHE_KEY);\n const cachedCategoryName = sessionStorage.getItem(CACHE_SELECTED_CATEGORY);\n\n if (cachedData) {\n try {\n const parsed = JSON.parse(cachedData);\n if (Array.isArray(parsed) && parsed.length > 0) {\n setData(parsed);\n setDataFiltered(parsed);\n\n const foundCategory =\n parsed.find((cat) => cat.name === cachedCategoryName) || parsed[0];\n\n setSelectedCategoryName(foundCategory?.name || null);\n setLoading(false);\n return parsed;\n }\n } catch (err) {\n console.warn(\"⚠️ Cache corrotta, rigenerazione...\");\n }\n }\n\n const response = await window.FormioHelper.getBookingConfig();\n\n const organized = {};\n response.forEach((item) => {\n (item.categories ?? []).forEach((cat) => {\n if (!organized[cat]) organized[cat] = { name: cat, services: [] };\n organized[cat].services.push(item);\n });\n });\n\n const organizedSorted = Object.fromEntries(\n Object.entries(organized).sort(([a], [b]) =>\n a.localeCompare(b, \"it\", { sensitivity: \"base\" })\n )\n );\n\n const categoriesArray = Object.values(organizedSorted).filter(\n (cat) => (cat.name ?? \"\").trim() !== \"\"\n );\n\n setData(categoriesArray);\n setDataFiltered(categoriesArray);\n\n setSelectedCategoryName(categoriesArray[0]?.name || null);\n\n sessionStorage.setItem(CACHE_KEY, JSON.stringify(categoriesArray));\n sessionStorage.setItem(CACHE_SELECTED_CATEGORY, categoriesArray[0]?.name || \"\");\n\n setLoading(false);\n return categoriesArray;\n };\n\n // 🔹 Mantiene aggiornata la categoria selezionata nella cache\n useEffect(() => {\n if (selectedCategoryName) {\n sessionStorage.setItem(CACHE_SELECTED_CATEGORY, selectedCategoryName);\n }\n }, [selectedCategoryName]);\n\n // 🔹 Caricamento solo una volta\n useEffect(() => {\n if (didFetch.current) return;\n didFetch.current = true;\n loadData();\n }, []);\n\n // 🔹 Funzione di ricerca (controllata)\n const searchResults = (e) => {\n const escapeRegExp = (s = \"\") => s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n\n const normalize = (s = \"\") =>\n s\n .toLowerCase()\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .replace(/\\s+/g, \" \")\n .trim();\n\n const stripHtml = (html = \"\") => html.replace(/<[^>]*>/g, \" \");\n\n const startsWord = (text, token) =>\n new RegExp(`\\\\b${escapeRegExp(token)}`, \"i\").test(text);\n\n const scoreService = (service, tokens) => {\n const name = normalize(service.name);\n const cats = normalize((service.categories ?? []).join(\" \"));\n const abs = normalize(stripHtml(service.abstract ?? \"\"));\n\n const ok = tokens.every(\n (t) => startsWord(name, t) || startsWord(cats, t) || startsWord(abs, t)\n );\n if (!ok) return -1;\n\n let score = 0;\n for (const t of tokens) {\n if (startsWord(name, t)) score += 3;\n else if (startsWord(cats, t)) score += 2;\n else if (startsWord(abs, t)) score += 1;\n }\n return score;\n };\n\n const value = e.target.value;\n setSearchQuery(value);\n\n const q = normalize(value);\n if (!q) {\n setDataFiltered(data);\n setSelectedCategoryName((prev) => prev ?? data[0]?.name ?? null);\n return;\n }\n\n const tokens = q.split(\" \").filter(Boolean);\n\n const filtered = data\n .map((category) => {\n const servicesScored = category.services\n .map((service) => ({ service, score: scoreService(service, tokens) }))\n .filter((x) => x.score >= 0)\n .sort((a, b) => b.score - a.score)\n .map((x) => x.service);\n\n return servicesScored.length ? { ...category, services: servicesScored } : null;\n })\n .filter(Boolean);\n\n setDataFiltered(filtered);\n\n // se la categoria corrente è ancora presente, tienila; altrimenti la prima disponibile\n const stillThere = filtered.some((c) => c.name === selectedCategoryName);\n setSelectedCategoryName(stillThere ? selectedCategoryName : filtered[0]?.name ?? null);\n };\n\n // ✅ PATCH 1: selezione servizio senza resettare filtro/ricerca\n const handleSelectService = (service) => {\n setSelectedService(service);\n\n // ❌ NON resettare più:\n // setSearchQuery(\"\");\n // setDataFiltered(data);\n\n // ✅ allinea la categoria al servizio selezionato (su data completa)\n const categoryWithService = data.find((cat) =>\n cat.services.some((svc) => svc.id === service.id)\n );\n if (categoryWithService) {\n setSelectedCategoryName(categoryWithService.name);\n }\n\n //addParamToUrl(\"service_id\", service.id);\n\n onChange({\n id: service.id,\n link: service.link,\n name: service.name,\n show_howto_in_motivation: service.show_howto_in_motivation,\n categories: service.categories,\n offices: service.offices,\n abstract: service.abstract,\n view_type: service.view_type,\n });\n\n current.data.user_group = null;\n clearCalendarViewState();\n };\n\n // 🔹 Gestione clic su categoria\n const handleCategoryClick = (category) => {\n setSelectedCategoryName(category.name);\n setSelectedService(null);\n\n //addParamToUrl(\"service_id\", null);\n\n // qui ha senso: cambio categoria => esco dal filtro e svuoto la ricerca\n setSearchQuery(\"\");\n setDataFiltered(data);\n\n onChange({});\n };\n\n // 🔹 Gestione modalità sola lettura\n useEffect(() => {\n const isReadOnly = !!document.querySelector(\".formio-read-only\");\n setRenderDataReadOnly(isReadOnly);\n }, []);\n\n // ✅ SINCRONIZZA SELECTEDSERVICE CON IL VALORE SALVATO (da Formio)\n useEffect(() => {\n const t = setTimeout(() => {\n const savedValue = current?.dataValue ?? current?.getValue();\n if (savedValue?.id) {\n setSelectedService(savedValue);\n //addParamToUrl(\"service_id\", savedValue.id);\n\n // ❌ NON resettare filtro/ricerca qui (altrimenti al click ti ripristina tutto)\n\n if (data.length > 0) {\n const categoryWithService = data.find((cat) =>\n cat.services.some((svc) => svc.id === savedValue.id)\n );\n if (categoryWithService) {\n setSelectedCategoryName(categoryWithService.name);\n }\n }\n }\n }, 500);\n\n return () => clearTimeout(t);\n }, [current?.dataValue, current?.data, data]);\n\n // ✅ EVENT LISTENER SU FORMIO CHANGE (fallback)\n useEffect(() => {\n const inst = window.FormioInstance;\n if (!inst) return;\n\n const handleFormioChange = () => {\n const savedValue = inst.submission?.data?.[current?.component?.key];\n if (savedValue?.id) {\n setSelectedService(savedValue);\n //addParamToUrl(\"service_id\", savedValue.id);\n\n // ❌ NON resettare filtro/ricerca qui (altrimenti al click ti ripristina tutto)\n\n if (data.length > 0) {\n const categoryWithService = data.find((cat) =>\n cat.services.some((svc) => svc.id === savedValue.id)\n );\n if (categoryWithService) {\n setSelectedCategoryName(categoryWithService.name);\n }\n }\n }\n };\n\n inst.on(\"change\", handleFormioChange);\n return () => inst.off(\"change\", handleFormioChange);\n }, [data, current?.component?.key]);\n\n if (loading) {\n return (\n <div className=\"services-booking\" ref={componentRef}>\n <div>{i18next.t(\"Caricamento in corso\")}...</div>\n </div>\n );\n }\n\n return (\n <div className=\"services-booking\" ref={componentRef}>\n {data && !renderDataReadOnly ? (\n <Container>\n {/* HEADER */}\n <Row className=\"mb-3\">\n <Col>\n <h3 className=\"h6 fw-bold text-uppercase mb-3\">\n {i18next.t(\"Seleziona il servizio per cui stai richiedendo un appuntamento\")}\n </h3>\n </Col>\n </Row>\n\n {/* SEARCH BAR */}\n <Row className=\"mb-3\">\n <Col>\n <div className=\"search-container\">\n <Input\n id=\"search\"\n label={i18next.t(\"Cerca\")}\n type=\"text\"\n value={searchQuery}\n onChange={searchResults}\n onInput={searchResults}\n infoText={i18next.t(\"Cerca per categoria, servizio o descrizione\")}\n />\n </div>\n </Col>\n </Row>\n\n {/* MAIN LAYOUT: CATEGORIES + SERVICES */}\n <Row className=\"mb-3\">\n {/* LEFT SIDEBAR - CATEGORIES */}\n {selectedCategory ? (\n <Col lg={3} md={4} className=\"mb-4 mb-lg-0\">\n <div className=\"categories-list\">\n <h3 className=\"h6 fw-bold text-uppercase mb-3\">\n {i18next.t(\"Categorie\")}\n </h3>\n\n {dataFiltered.length > 0 &&\n dataFiltered.map((category) => {\n const isActive = selectedCategoryName === category.name;\n return (\n <button\n key={category.name}\n onClick={() => handleCategoryClick(category)}\n className={`category-item w-100 text-start p-3 mb-2 border-0 rounded ${\n isActive\n ? \"category-active bg-primary text-white\"\n : \"bg-light text-dark\"\n }`}\n >\n <span className=\"fw-500 d-block\">{category.name}</span>\n <small className={`d-block mt-1 ${isActive ? \"text-white\" : \"text-muted\"}`}>\n {category.services.length}{\" \"}\n {category.services.length > 1\n ? i18next.t(\"servizi\")\n : i18next.t(\"servizio\")}\n </small>\n </button>\n );\n })}\n </div>\n </Col>\n ) : null}\n\n {/* RIGHT CONTENT - SERVICES */}\n <Col lg={selectedCategory ? 9 : 12} md={selectedCategory ? 8 : 12}>\n <div className=\"services-container\">\n {filteredServices.length > 0 ? (\n <div className=\"services-header mb-4\">\n <h3 className=\"h5 fw-bold text-primary mb-0\">\n {selectedCategory?.name}\n </h3>\n <div className=\"border-bottom border-primary mt-3 mb-4\" />\n </div>\n ) : null}\n\n {filteredServices.length > 0 ? (\n <div className=\"services-list\">\n {filteredServices.map((service) => {\n const isSelected = selectedService?.id === service.id;\n const safeHtml = DOMPurify.sanitize(service?.abstract);\n\n return (\n <button\n key={service.id}\n onClick={() => handleSelectService(service)}\n className={`service-card mb-4 p-4 rounded border cursor-pointer transition text-start w-100 ${\n isSelected\n ? \"border-primary border-2 bg-light\"\n : \"border-light border-1 bg-white\"\n }`}\n style={{ cursor: \"pointer\" }}\n tabindex=\"0\"\n role=\"button\"\n aria-label={`${service.name}`}\n aria-pressed={isSelected}\n >\n <div className=\"d-flex justify-content-between align-items-start\">\n <div className=\"flex-grow-1\">\n <h5 className=\"h6 fw-bold mb-2 text-dark\">\n {service.name}\n </h5>\n {service?.abstract && (\n <p\n className=\"text-muted small mb-0\"\n dangerouslySetInnerHTML={{ __html: safeHtml }}\n />\n )}\n </div>\n </div>\n </button>\n );\n })}\n </div>\n ) : (\n <div className=\"alert alert-info text-italic\">\n {i18next.t(\n \"Il servizio che stai cercando non è disponibile per la prenotazione appuntamento\"\n )}\n </div>\n )}\n </div>\n </Col>\n </Row>\n </Container>\n ) : renderDataReadOnly ? (\n <fieldset className=\"it-page-section\">\n <div className=\"cmp-card mt-2\">\n <div className=\"card has-bkg-grey shadow-sm p-big\">\n <div className=\"card-header border-0 p-0 mb-lg-30\">\n <div className=\"d-flex\">\n <h2 className=\"title-xxlarge mb-1\">{selectedCategory?.name}</h2>\n </div>\n </div>\n <div className=\"card p-3 p-lg-4 fieldset-body\">\n {current?.dataValue?.id ? (\n <div className=\"services-list\">\n <div\n key={current.dataValue.id}\n className=\"service-card p-4 rounded border transition border-light border-1 bg-white\"\n >\n <div className=\"d-flex justify-content-between align-items-start\">\n <div className=\"flex-grow-1\">\n <p className=\"mb-2 text-dark text-paragraph\">\n {current.dataValue.name}\n </p>\n </div>\n </div>\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n </fieldset>\n ) : null}\n </div>\n );\n};\n\nexport default class FormioListServices extends InputFormIO {\n constructor(component, options, data) {\n super(component, options, data);\n }\n\n static get builderInfo() {\n return {\n title: \"Lista Servizi\",\n group: \"basic\",\n icon: \"bi bi-list\",\n documentation: \"\",\n weight: 70,\n schema: FormioListServices.schema(),\n };\n }\n\n static schema() {\n return InputFormIO.schema({\n type: \"list-services\",\n });\n }\n\n static editForm = editForm;\n\n attach(element, ref) {\n this.rootComponent = createRoot(element);\n this.rootComponent.render(\n <ReactListServices\n ref={ref}\n component={this.component}\n onChange={(e) => this.setValue(e)}\n {...this}\n current={this}\n />\n );\n }\n\n setValue(value) {\n if (!value) return;\n this.shouldSetValue = true;\n this.updateValue(value);\n }\n\n getValue() {\n return this.dataValue;\n }\n\n init() {\n super.init();\n }\n\n render() {\n return super.render();\n }\n}\n","import FormioPageBreak from \"./customComponentFormio/PageBreak/PageBreak\";\nimport FormioDynamicCalendar from \"./customComponentFormio/DynamicCalendar/DynamicCalendar\";\nimport Calendar from \"./customComponentFormio/Calendar/Calendar\";\nimport CalendarAdvanced from \"./customComponentFormio/CalendarAdvanced/CalendarAdvanced\";\nimport SdcFile from \"./customComponentFormio/FileSdc/SdcFileReact\";\nimport FormioAddressMap from \"./customComponentFormio/AddressMap/AddressMap\";\nimport FormioListServices from \"./customComponentFormio/ListServices/ListServices\";\n\nexport {\n FormioPageBreak,\n FormioDynamicCalendar,\n Calendar,\n CalendarAdvanced,\n SdcFile,\n FormioAddressMap,\n FormioListServices,\n};\n\nexport const formioCustomComponents = {\n pagebreak: FormioPageBreak,\n dynamic_calendar: FormioDynamicCalendar,\n calendar: Calendar,\n \"calendar-advanced\": CalendarAdvanced,\n sdcfile: SdcFile,\n address_map: FormioAddressMap,\n \"list-services\": FormioListServices,\n};\n\nexport function registerFormioComponents(Components) {\n if (!Components || typeof Components.addComponent !== \"function\") {\n throw new Error(\n \"registerFormioComponents requires Formio Components with addComponent(name, component)\",\n );\n }\n\n Object.entries(formioCustomComponents).forEach(([name, component]) => {\n Components.addComponent(name, component);\n });\n\n return formioCustomComponents;\n}\n"],"names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","Field","Formio","ReactPageBreak","r","useRef","FormioPageBreak","component","options","data","reactRoot","createRoot","baseUrl","globalRegex","url","explodedPath","DynamicCalendarEdit$1","editForm$5","extend","Components","DynamicCalendarEdit","buildFormatLongFn","width","buildLocalizeFn","valuesArray","defaultWidth","index","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","findIndex","pattern","findKey","rest","predicate","array","buildMatchPatternFn","parseResult","constructFromSymbol","constructFrom","date","normalizeDates","dates","normalize","defaultOptions","getDefaultOptions","toDate","argument","startOfWeek","weekStartsOn","_date","day","diff","isSameWeek","laterDate","earlierDate","laterDate_","earlierDate_","formatDistanceLocale","formatDistance","token","count","result","tokenValue","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","eraValues","quarterValues","monthValues","formattingMonthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","localize","quarter","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","de","number","rem100","enGB","weekdays","lastWeek","thisWeek","nextWeek","baseDate","it","global","factory","module","this","hookCallback","hooks","setHookCallback","callback","input","isObject","hasOwnProp","isObjectEmpty","obj","isUndefined","isNumber","isDate","map","arr","res","arrLen","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","some","fun","len","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","Moment","isMoment","warn","msg","deprecate","firstTime","arg","argLen","deprecations","deprecateSimple","isFunction","set","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","calendar","mom","now","output","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","length","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","isFuture","pastFuture","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","u","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","y","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","get","isUTC","month","stringGet","stringSet","prioritized","prioritizedLen","mod","indexOf","o","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","M","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","require","getSetGlobalLocale","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","defaults","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","min","max","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add","subtract","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString","keepOffset","utc","inspect","zone","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","moment","enGb","processRelativeTime","convertTimeInInteger","concatString","convertIntegerToTime","locationNameFormatter","sessionGet","stringValue","sessionSet","expirationToken","expirationDate","newValue","DaySelected","slot","i18next","ReactDynamicCalendar","current","onChange","selected","setSelected","useState","disabledDates","setDisabledDates","daysSlot","setDaysSlot","noAvailableSlot","setNoAvailableSlot","draftMeeting","setDraftMeeting","slotSelected","setSlotSelected","selectedData","setSelectedData","activeSlot","setActiveSlot","firstAvailableSlot","setFirstAvailableSlot","renderData","setRenderData","isOpen","toggleModal","listMeeting","setListMeeting","renderDataReadOnly","setRenderDataReadOnly","refButtonSlot","calendarID","calculateAvailableDates","formattedDate","getMonthlyAvailabilitiesUrl","response","dateAvailables","getListDaysInMonth","elements","resetValue","el","firstDayAvailable","getDaysSlot","getDailyAvailabilitiesUrl","saveRenderData","parseListMeeting","explodedValue","explodedCalendar","useEffect","arrDays","available","selectOpeningHours","openingHours","queryParameters","onMonthChange","onDayClick","onClickSelectDate","createOrUpdateMeeting","valueSlot","dataMeet","draftMeet","updateMeeting","Swal","handleConfirmMeeting","Completionist","renderer","completed","handleFromTime","currentValue","valueMin","valueMax","setValueCalendar","handleToTime","valueMeetings","meeting","getCurrentLocale","removeItem","newArray","Fragment","DayPicker","Icon","Alert","Countdown","Modal","ModalHeader","ModalBody","dayjs","Input","ModalFooter","Button","FormioDynamicCalendar","editForm","meeting_id","opening_hour","editForm$4","CalendarAdvancedEdit","editForm$3","SlotSelected","adjustSlotHeight","events","durations","start","minDuration","avgDuration","dynamicHeight","CACHE_CONFIG","setCachedData","cacheKey","cacheData","getCachedData","cached","parsedCache","cacheAge","generateCacheKey","params","CALENDAR_VIEW_STATE_KEY","CALENDAR_VIEW_DATE_KEY","saveCalendarViewState","viewType","getCalendarViewState","clearCalendarViewState","ReactCalendarAdvanced","availableDate","setAvailableDate","isLoading","setIsLoading","selectedBooking","setSelectedBooking","monthYearOptions","setMonthYearOptions","daysOptions","setDaysOptions","slotsOptions","setSlotsOptions","selectedMonth","setSelectedMonth","selectedDay","setSelectedDay","selectedSlot","setSelectedSlot","calendarRef","calendarEc","getTimeRange","availabilities","times","minStart","t","maxEnd","getHiddenDays","availableDays","missingDays","buildAvailabilityUrl","originalUrl","startDate","endDate","newPathname","buildAvailabilityUrlLongTerms","calculateAvailabilityLink","handleChangeMonthYear","handleChangeDay","cachedSlots","availabilitySlots","handleChangeSlot","meet","getMonthYearOptions","items","fetchAvailabilityEventsSelect","calendarRangeStart","calendarRangeEnd","calculatedUrl","cachedData","availabilityData","savedValue","monthKey","first","getResponsiveView","handleResize","newView","currentView","renderViewCalendar","viewState","createCalendar","TimeGrid","view","event","end","meetingData","handleViewChange","fetchAvailabilityEvents","successCallback","failureCallback","endWeek","timeRange","highlightSavedSlot","timerId","destroyed","initCalendar","saved","savedStart","savedEnd","eventToHighlight","ev","renderSummary","Select","option","Spinner","FormioCalendarAdvanced","FileEditData","FileEditDisplay","FileEditFile","FileEditValidation","editForm$2","isArray_1","freeGlobal","_freeGlobal","freeSelf","root","_root","Symbol","_Symbol","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","_getRawTag","objectToString","_objectToString","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","_isKey","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","_isMasked","funcProto","funcToString","toSource","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","_baseIsNative","getValue","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","_hashGet","hashHas","_hashHas","hashSet","_hashSet","require$$4","Hash","entries","entry","_Hash","listCacheClear","_listCacheClear","eq","eq_1","assocIndexOf","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","size","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","quote","subString","_stringToPath","arrayMap","iteratee","_arrayMap","symbolProto","symbolToString","baseToString","_baseToString","toString_1","castPath","_castPath","toKey","_toKey","baseGet","path","_baseGet","defaultValue","get_1","defineProperty","_defineProperty","baseAssignValue","_baseAssignValue","assignValue","objValue","_assignValue","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","baseSet","customizer","nested","_baseSet","set_1","Auth","axios","resolve","reject","decodedToken","jwtDecode","FileComponent","signatureCheckWsUrl","ReactSdcFile","uploadedFiles","setUploadedFiles","filesUploadingMap","setFilesUploadingMap","auth","addFilesUploading","id","file","prevMap","updatedMap","maxSizeValidator","translateScalars","validateTypeFile","accepted","acc","extension","mime","parsedFileInfo","fileUpload","fileInfo","getRootProps","getInputProps","fileRejections","isDragActive","open","useDropzone","acceptedFiles","uploadFile","removeFile","prevUploadedFiles","files","loadFiles","idUpload","respPost","progressEvent","percentCompleted","etag","resp","fileIndex","nextFiles","responseErr","str","formatBytes","bytes","decimals","dm","sizes","DOMPurify","Progress","errors","FormioSdcFile","reactRefName","mountNode","normalized","changed","rootPathValue","localValue","row","nextVisible","content","AddressMapEdit","editForm$1","v","O","S","E","I","C","_","A","P","R","T","D","N","F","L","B","V","U","K","H","W","z","Q","G","$","Y","X","J","Z","et","react","AccessibleAutocomplete","onConfirm","disabled","onClear","tClearInput","autocompleteProps","inputRef","updateInputValue","handleClear","handleSource","query","populateResults","handleOnConfirm","selectedValue","Autocomplete","iconRetinaUrl","iconUrl","shadowUrl","position","areasLayer","bounds","onMarkedMoved","mapRef","marker","polygon","setPolygon","streetMaps","tileLayer","defaultPosition","initMap","Leaflet","layer","centerMarker","newLatLng","ReactAddressMap","setPosition","optionSuggestions","setOptionSuggestions","boundingBox","setBoundingBox","setAreasLayer","chechingMarkerPosition","setChechingMarkerPosition","geographicAreasIds","setGeographicAreasIds","loadingSuggestions","setLoadingSuggestions","allBounds","setAllBounds","modalMarkerPosition","setModalMarkerPosition","autocompleteValue","setAutocompleteValue","message","setMessage","isOpenModalMessages","setModalMessages","areaIdParam","geographic_areas_id","lastQuery","language","all_bounds","areaId","fetchLocations","apiUrl","currentSuggestions","currentSuggestionsLabel","fetchPromises","lat","lon","areaResponse","areaData","validLocations","suggest","fetchReverseGeocoding","lng","getLocation","initComponent","urlGeographicAreas","geographic_areas_ids","areas_layer","area","geo","geofence","geoJsonLayer","feature","bbNE","bbSW","updateAutocompleteValue","onSaveMapLocation","debounce","FormioAddressMap","ListServicesEdit","InputFormIO","ReactListServices","CACHE_KEY","CACHE_SELECTED_CATEGORY","setData","dataFiltered","setDataFiltered","selectedCategoryName","setSelectedCategoryName","selectedService","setSelectedService","searchQuery","setSearchQuery","loading","setLoading","didFetch","componentRef","selectedCategory","useMemo","fromFiltered","filteredServices","loadData","cachedCategoryName","parsed","foundCategory","cat","organized","organizedSorted","categoriesArray","searchResults","escapeRegExp","stripHtml","html","startsWord","text","scoreService","service","cats","score","prev","filtered","category","servicesScored","stillThere","handleSelectService","categoryWithService","svc","handleCategoryClick","isReadOnly","inst","handleFormioChange","Container","Row","Col","isActive","isSelected","safeHtml","FormioListServices","formioCustomComponents","Calendar","CalendarAdvanced","SdcFile","registerFormioComponents"],"mappings":"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CN,MAAO,GACP,IAAK,oBACL,MAAO,WACP,OAAQ,GACR,YAAa,oCACb,YAAa,CACX,KAAM,CACJ,GAAI,CACF,CACE,IAAK,cACjB,EACU,CAAC,WAAW,CACtB,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,MAAO,QACP,IAAK,yBACL,OAAQ,GACR,YAAa,qCACb,YAAa,CACX,KAAM,CACJ,GAAI,CACF,CACE,IAAK,cACjB,EACU,CAAC,WAAW,CACtB,CACA,CACA,CACA,EACE,CACE,KAAM,WACN,IAAK,UACL,MAAO,yBACP,QAAS,yCACT,KAAM,EACN,OAAQ,MACR,MAAO,GACP,OAAQ,GACR,YAAa;AAAA;AAAA;AAAA;AAAA;AAAA,OAMb,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,KACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,UACL,MAAO,qBACP,OAAQ,GACR,YAAa,8CACb,QACE,iFACF,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,KACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,MACL,MAAO,YACP,YAAa,6CACb,QACE,wEACF,OAAQ,GACR,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,aACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,MACL,MAAO,YACP,YAAa,qDACb,QACE,qEACF,OAAQ,GACR,YAAa,CACX,KAAM,CACJ,MAAO,CACL,CACE,IAAK,cACjB,EACU,aACV,CACA,CACA,CACA,EACE,CACE,KAAM,YACN,MAAO,GACP,IAAK,mBACL,MAAO,qBACP,YAAa,oCACb,QACE,mRACF,OAAQ,EACZ,EACE,CACE,KAAM,WACN,MAAO,GACP,IAAK,QACL,MAAO,sBACP,QACE,0EACF,OAAQ,EACZ,EACE,CACE,KAAM,WACN,MAAO,GACP,IAAK,aACL,MAAO,cACP,QACE,qIACF,OAAQ,EACZ,EACE,CACE,KAAM,WACN,MAAO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","x_google_ignoreList":[0,1,2,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,121,122,124,125,126]}
|