{"version":3,"mappings":"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","names":["factory","_classCallCheck","instance","Constructor","_defineProperties","target","props","i","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_getPrototypeOf","o","p","_isNativeReflectConstruct","e","_assertThisInitialized","self","_possibleConstructorReturn","call","_createSuper","Derived","hasNativeReflectConstruct","Super","result","NewTarget","_superPropBase","object","property","_get","receiver","base","desc","Emitter","type","callback","options","stack","l","event","stackToCall","listener","AbortSignal","_Emitter","_super","_this","AbortController","reason","signalReason","err","polyfillNeeded","abortableFetchDecorator","patchTargets","_patchTargets","fetch","_patchTargets$Request","NativeRequest","NativeAbortController","_patchTargets$__FORCE","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","Request","input","init","signal","request","realFetch","abortableFetch","abortError","cancellation","_","reject","_abortableFetch","global","it","this","fails","exec","error","require$$0","test","NATIVE_BIND","$propertyIsEnumerable","getOwnPropertyDescriptor","V","createPropertyDescriptor","bitmap","value","FunctionPrototype","fn","uncurryThis","toString","stringSlice","require$$1","require$$2","$Object","isNullOrUndefined","$TypeError","requireObjectCoercible","toIndexedObject","documentAll","$documentAll","isCallable","argument","isObject","getBuiltIn","namespace","method","version","$String","symbol","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","require$$3","isSymbol","$Symbol","tryToString","aCallable","getMethod","P","func","ordinaryToPrimitive","pref","val","defineProperty","defineGlobalProperty","key","store","sharedModule","toObject","uid","shared","hasOwn","require$$4","require$$5","Symbol","wellKnownSymbol","name","toPrimitive","exoticToPrim","toPropertyKey","document","EXISTS","DESCRIPTORS","require$$6","IE8_DOM_DEFINE","require$$7","$getOwnPropertyDescriptor","O","anObject","CONFIGURABLE","Attributes","current","definePropertyModule","createNonEnumerableProperty","inspectSource","WeakMap","sharedKey","hiddenKeys","TypeError","TYPE","state","metadata","makeBuiltIn","makeBuiltInModule","defineBuiltIn","simple","x","n","toIntegerOrInfinity","number","min","toAbsoluteIndex","index","length","integer","toLength","lengthOfArrayLike","obj","createMethod","IS_INCLUDES","$this","el","fromIndex","push","names","enumBugKeys","internalObjectKeys","ownKeys","keys","getOwnPropertySymbols","copyConstructorProperties","source","exceptions","isForced","feature","detection","string","TARGET","GLOBAL","STATIC","FORCED","targetProperty","sourceProperty","F","objectGetPrototypeOf","constructor","objectKeys","TO_ENTRIES","IE_WORKAROUND","path","thisArg","locale","_extends","CalendarLocale","TimePickerLocale","localeValues","Pagination","DatePicker","TimePicker","Calendar","typeTemplate","plural","word","num","forms","relativeTimeWithPlural","withoutSuffix","format","monthsParse","moment","now","hour","minute","isLower","period","m","weekdays","nounCase","str","meridiem","hours","minutes","hm","filter","changes","student","json","_a","_b","_c","__decorateClass","session","item","isEmpty","BaseSchool","settings","entity","course","allowUndefined","studentCourse","progress","root","module","VERSION","zones","links","countries","guesses","cachedGuess","logError","momentVersion","major","minor","charCodeToInt","charCode","unpackBase60","parts","whole","fractional","multiplier","out","sign","arrayToInt","array","intToUntil","mapIndices","indices","unpack","data","offsets","untils","Zone","packedString","unpacked","timestamp","zone_name","country_code","max","offset","offsetNext","offsetPrev","tz","mom","Country","country_name","zone_names","OffsetAt","at","timeString","abbr","ZoneScore","zone","offsetAt","findChange","low","high","mid","diff","userOffsets","startYear","last","change","next","sortZoneScores","a","b","addToGuesses","guessesForUserOffsets","offsetsLength","filteredGuesses","j","guessesOffset","rebuildGuess","intlName","normalizeName","zoneScores","zoneScore","getZone","guess","ignoreCache","addZone","packed","split","normalized","caller","link","getNames","getCountryNames","addLink","aliases","alias","normal0","normal1","addCountries","country_zones","getCountry","zonesForCountry","country","with_offset","loadData","zoneExists","needsOffset","isUnixTimestamp","message","args","keepTime","z","abbrWrap","old","resetZoneWrap","resetZoneWrap2","momentProperties","momentTimezoneModule","prevItemSection","_d","_e","count","child","isEveryChildCompleted","position","section","parent","parentAvailability","delay","prevSection","targetDate","prevRequiredItem","previousItem","studentCourseItem","isNil","baseDate","timeDelayValue","timeActive","waitUntilTime","daysOfWeekActive","waitUntilDaysOfWeek","targetTime","adjustedDelay","targetDays","day","currentTz","task","library","step","steps","schoolLibraryItem","response","courseItemId","fields","courseId","studentCourseId","text","api","FetchStudentCourseResponse","studentCourseItemProgressId","model","answerId","commentId","courseItemTestId","isRight","FetchStudentCourseItemsResponse","FetchStudentCourseItemResponse","lang","id","filterId","contactId","planId","itemId","threadId","topicId","sequenceNumber","reactionId","studentId","messageId","libraryId","rating","sectionType","targetItemId","targerProgressId","progressId","comment","targetProgressId","ratingId","email","password","refreshToken","token","confirmPassword","notification","body","BaseApi","client","apiUrl","userStore","hub","headers","ResponseType","attempt","jwtDecoder","cookieClient","user","score","locStore","reloadPageIfSuccess","langDetector","deviceStore","defaultTab","includeTime","includeSeconds","chatController","phoneController","Action","createBrowserLocation","window","globalHistory","pathname","search","hash","createBrowserHref","to","cond","location","_ref","parsedPath","hashIndex","searchIndex","getLocation","createHref","validateLocation","v5Compat","action","getIndex","handlePop","nextIndex","delta","history","historyState","url","replace","createURL","href","ResultType","routes","locationArg","basename","branches","matches","parentsMeta","parentPath","flattenRoute","route","relativePath","meta","routesMeta","_route$path","exploded","segments","first","rest","isOptional","required","restExploded","subpath","s","initialScore","segment","branch","matchedParams","matchedPathname","end","remainingPathname","match","pattern","matcher","compiledParams","pathnameBase","captureGroups","memo","paramName","splatValue","caseSensitive","params","regexpSource","startIndex","nextChar","fromPathname","toPathname","char","field","dest","v7_relativeSplatPath","pathMatches","idx","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","from","routePathnameIndex","toSegments","hasExplicitTrailingSlash","hasCurrentTrailingSlash","paths","React.createContext","_temp","relative","UNSAFE_invariant","navigator","React.useContext","joinedPathname","React.useMemo","cb","React.useLayoutEffect","isDataRoute","dataRouterContext","future","routePathnamesJson","UNSAFE_getResolveToMatches","activeRef","React.useRef","React.useCallback","context","outlet","React.createElement","routeMatch","_temp2","dataRouterState","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","renderedMatches","preStyles","devInfo","React.Fragment","React.Component","errorInfo","routeContext","children","_dataRouterState2","_dataRouterState","errors","errorIndex","renderFallback","fallbackIndex","loaderData","needsToRunLoader","shouldRenderHydrateFallback","errorElement","hydrateFallbackElement","getChildren","DataRouterHook","DataRouterStateHook","hookName","ctx","thisRoute","_state$errors","routeId","router","_ref4","isStatic","navigate","jsonPath","React.useEffect","Router","_ref5","basenameProp","locationProp","navigationType","staticProp","navigationContext","locationContext","trailingPathname","margin","backgroundColor","transparent","flex1","className","customStyles","useMemo","styles","jsx","serviceStore","schoolStore","selectLang","useCallback","opts","price","precision","currency","label","colon","priceClassName","fractionalClassname","truncateIfFractionalZero","school","c","priceComponent","isUsd","curLoc","jsxs","r","f","h","g","D","t","w","Y","R","E","S","u","y","C","v","N","Z","$","H","re","A","U","G","J","Q","X","oe","ne","fe","React","script","useEffect","loc","selectRef","hideSubtitle","titleExtra","titleClassName","onClick","clickable","useState","formattedValue","Fragment","wrapperClassName","inputClassName","onSearch","searchOpen","setSearchOpen","handleSearch","words","languages","project","onCancel","newWordState","setNewWordState","setState","setFilter","openWord","missingWordsDrawer","menu","excluded","sourceKeys","historyRef","setStateImpl","React.useState","v7_startTransition","newState","React.forwardRef","LinkWithRef","_ref7","ref","reloadDocument","preventScrollReset","unstable_viewTransition","UNSAFE_NavigationContext","absoluteHref","isExternal","currentUrl","targetUrl","internalOnClick","handleClick","replaceProp","capture","isAuthenticated","Suspense","ready","setReady","targetLang","updateTokenTimer","defineProperties","src","img","canvas","top","left","bottom","right","radius","_React$Component","Favicon","_ret","_len","_key","activeInstance","prevProps","head","isAnimated","intervalId","animateFavicon","nextAnimationIndex","keepIconLink","exports","_react","_propTypes","_interopRequireDefault","_typeof","_defineProperty","MetaTagsContext","_Component","_default","arr","iter","arr2","metas","headElms","title","canonicalLink","elm","addedMeta","identifier","filteredMetas","_loop","addMeta","identifierValue","existing","duplicates","childrens","docFrag","ln","_interopRequireWildcard","_reactDom","_utils","newObj","MetaTags","oldProps","extract","headComponent","childStr","tempHead","childNodes","headHtml","tag","_meta_tags","ReactTitle","_meta_tags_context","_react_title","fileProvider","sub","payload","res","clear","header","onTitleClick","achievement","headerExtra","hideDate","hideInfo","useContext","drawer","main","isWorker","workerSize","canUseWorker","canUsePaths","canDrawBitmap","noop","promise","ModulePromise","Prom","bitmapMapper","skipTransform","map","raf","TIME","frame","cancel","frames","lastFrameTime","onFrame","time","timer","getWorker","worker","prom","resolves","decorate","execute","offscreen","size","done","resolve","workerDone","msg","code","defaults","convert","transform","isOk","prop","onlyPositiveInt","randomInt","toDecimal","colorsToRgb","colors","hexToRgb","getOrigin","origin","setCanvasWindowSize","setCanvasRectSize","rect","getCanvas","zIndex","ellipse","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","randomPhysics","radAngle","radSpread","updateFetti","fetti","x1","y1","x2","y2","transformPath2D","scaleX","scaleY","width","height","matrix","rot","innerRadius","outerRadius","spikes","animate","fettis","resizer","animatingFettis","animationFrame","destroy","onDone","update","confettiCannon","globalOpts","isLibCanvas","allowResize","hasResizeEventRegistered","globalDisableForReducedMotion","shouldUseWorker","initialized","preferLessMotion","animationObj","fireLocal","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","shapes","scalar","flat","temp","startX","startY","fire","disableForReducedMotion","onResize","defaultFire","getDefaultFire","pathString","pathMatrix","path2d","t1","t2","shapeFromPath","pathData","tempCanvas","tempCtx","maxSize","minX","minY","maxX","maxY","maxDesiredSize","scale","shapeFromText","textData","color","fontFamily","fontSize","font","padding","onClose","contextHolder","fireConfetti","particleRatio","renderNotification","GamificationAchievementNotification","SchoolProvider","LocProvider","UserProvider","keygen","geoLocator","antLocale","enUS","GamificationBalanceProvider","NotificationCenter","storage","decoder","mobxConfigure","App"],"sources":["../../../node_modules/.pnpm/abortcontroller-polyfill@1.7.5/node_modules/abortcontroller-polyfill/dist/polyfill-patch-fetch.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/global.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/fails.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/descriptors.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-bind-native.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-call.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-uncurry-this.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/classof-raw.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/indexed-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-null-or-undefined.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/document-all.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-callable.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/get-built-in.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-is-prototype-of.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/engine-user-agent.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/engine-v8-version.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/symbol-constructor-detection.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-symbol.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/try-to-string.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/a-callable.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/get-method.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/define-global-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/shared-store.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/shared.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/has-own-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/uid.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-primitive.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-property-key.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/document-create-element.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/v8-prototype-define-bug.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/an-object.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-define-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/function-name.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/inspect-source.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/weak-map-basic-detection.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/shared-key.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/hidden-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/internal-state.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/make-built-in.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/define-built-in.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/math-trunc.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-integer-or-infinity.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/to-length.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/length-of-array-like.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/array-includes.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/own-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/is-forced.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/export.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-keys.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/object-to-array.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/modules/es.object.values.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/internals/path.js","../../../node_modules/.pnpm/core-js@3.31.0/node_modules/core-js/es/object/values.js","../../src/polyfills.ts","../../../node_modules/.pnpm/rc-pagination@3.1.17_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/id_ID.js","../../../node_modules/.pnpm/rc-picker@2.6.11_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/id_ID.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/id_ID.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/id_ID.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/id_ID.js","../../../node_modules/.pnpm/rc-pagination@3.1.17_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/uk_UA.js","../../../node_modules/.pnpm/rc-picker@2.6.11_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/uk_UA.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/uk_UA.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/uk_UA.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/uk_UA.js","../../../node_modules/.pnpm/rc-pagination@3.1.17_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/es_ES.js","../../../node_modules/.pnpm/rc-picker@2.6.11_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/es_ES.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/es_ES.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/es_ES.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/es_ES.js","../../../node_modules/.pnpm/rc-pagination@3.1.17_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-pagination/es/locale/zh_TW.js","../../../node_modules/.pnpm/rc-picker@2.6.11_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/zh_TW.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/zh_TW.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/zh_TW.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/zh_TW.js","../../../node_modules/.pnpm/rc-picker@2.6.11_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/rc-picker/es/locale/zh_CN.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/time-picker/locale/zh_CN.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/date-picker/locale/zh_CN.js","../../../node_modules/.pnpm/antd@4.23.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/antd/es/locale/zh_CN.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/ru.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/uk.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/id.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/es.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/zh-tw.js","../../../node_modules/.pnpm/moment@2.29.4/node_modules/moment/dist/locale/zh-cn.js","../../src/models/student-course/student-course-filter.ts","../../src/models/student/student.ts","../../src/models/student/student-session.ts","../../src/models/school/school.ts","../../src/models/school-course/school-course.ts","../../src/models/student-course/student-course.ts","../../src/models/student-course/student-course-progress/student-course-progress.ts","../../src/models/student-course-item/student-course-item-progress/student-course-item-progress.ts","../../../node_modules/.pnpm/moment-timezone@0.5.43/node_modules/moment-timezone/moment-timezone.js","../../../node_modules/.pnpm/moment-timezone@0.5.43/node_modules/moment-timezone/index.js","../../src/models/student-course-item/student-course-item.ts","../../src/models/student-course-item/student-course-item-filter.ts","../../src/models/student-course-item/student-course-item-test/student-course-item-test.ts","../../src/models/student-course-item/student-course-item-task/student-course-item-task.ts","../../src/models/school-library/school-library.ts","../../src/models/school-library/school-library-item-progress/school-library-item-progress.ts","../../src/models/school-library/school-library-item/school-library-item.ts","../../src/models/school-library/school-library-item/school-library-item-filter.ts","../../src/models/SchoolContent/SchoolContentItem.ts","../../src/api/methods/student/student-course/types/fetch-student-courses.ts","../../src/api/methods/student/student-course/types/fetch-student-course.ts","../../src/api/methods/student/student-course/types/start-course.ts","../../src/api/methods/student/student-course/types/send-feedback.ts","../../src/api/methods/student/student-course/index.ts","../../src/api/methods/school-course/types/fetch.ts","../../src/api/methods/school-course/index.ts","../../src/api/methods/student/student-course-item/types/fetch-student-course-items.ts","../../src/api/methods/student/student-course-item/types/fetch-student-course-item.ts","../../src/api/methods/student/student-course-item/types/complete-course-item-theory.ts","../../src/api/methods/student/student-course-item/types/create-task-answer.ts","../../src/api/methods/student/student-course-item/types/save-task-answer.ts","../../src/api/methods/student/student-course-item/types/create-task-answer-comment.ts","../../src/api/methods/student/student-course-item/types/reset-task-answer-status.ts","../../src/api/methods/student/student-course-item/types/delete-task-answer-comment.ts","../../src/api/methods/student/student-course-item/types/save-task-answer-comment.ts","../../src/api/methods/student/student-course-item/types/fetch-task-answer-comments.ts","../../src/api/methods/student/student-course-item/index.ts","../../src/api/methods/school-settings/types/fetch-school-settings.ts","../../src/api/methods/school-settings/types/index.ts","../../src/api/methods/student/student/types/save-student.ts","../../src/api/methods/student/student/types/resend-email-confirmation.ts","../../src/api/methods/student/student/types/select-lang.ts","../../src/api/methods/student/student/types/update-password.ts","../../src/api/methods/student/student/subscription/index.ts","../../src/api/methods/student/student/license/index.ts","../../src/api/methods/student/student/index.ts","../../src/api/methods/service/types/contact-in-filter.ts","../../src/api/methods/service/types/keepalive.ts","../../src/api/methods/service/types/run-custom-event.ts","../../src/api/methods/service/types/track-form.ts","../../src/api/methods/service/types/update-localization.ts","../../src/api/methods/service/index.ts","../../src/api/methods/course-preview/types/fetch-course-items.ts","../../src/api/methods/course-preview/types/fetch-course-item.ts","../../src/api/methods/course-preview/types/fetch-course.ts","../../src/api/methods/course-preview/types/fetch-course-plans.ts","../../src/api/methods/course-preview/index.ts","../../src/api/methods/student-course-preview/types/fetch-student-course.ts","../../src/api/methods/student-course-preview/types/fetch-student-course-item.ts","../../src/api/methods/student-course-preview/types/fetch-student-course-items.ts","../../src/api/methods/student-course-preview/types/complete-student-course-item.ts","../../src/api/methods/student-course-preview/types/reset-student-course-item.ts","../../src/api/methods/student-course-preview/types/unblock-student-course-item.ts","../../src/api/methods/student-course-preview/types/block-student-course-item.ts","../../src/api/methods/student-course-preview/index.ts","../../src/api/methods/forum/types/fetch-forum-thread.ts","../../src/api/methods/forum/types/create-topic.ts","../../src/api/methods/forum/types/fetch-topic-comments.ts","../../src/api/methods/forum/types/fetch-topic.ts","../../src/api/methods/forum/types/create-topic-comment.ts","../../src/api/methods/forum/types/update-topic-comment.ts","../../src/api/methods/forum/types/delete-topic-comment.ts","../../src/api/methods/forum/types/update-topic.ts","../../src/api/methods/forum/types/fetch-topic-comment-position.ts","../../src/api/methods/forum/types/delete-topic.ts","../../src/api/methods/forum/types/block-student.ts","../../src/api/methods/forum/types/create-reaction.ts","../../src/api/methods/forum/types/delete-reaction.ts","../../src/api/methods/forum/index.ts","../../src/api/methods/student/email-broadcast/types/fetch-status.ts","../../src/api/methods/student/email-broadcast/types/unsubscribe.ts","../../src/api/methods/student/email-broadcast/index.ts","../../src/api/methods/school-library/types/fetch-school-library-items.ts","../../src/api/methods/school-library/types/fetch-school-library-item.ts","../../src/api/methods/school-library/types/fetch-school-library.ts","../../src/api/methods/school-library/index.ts","../../src/api/methods/student/course-item-rating/types/fetch-course-item-ratings.ts","../../src/api/methods/student/course-item-rating/types/save-course-item-rating.ts","../../src/api/methods/student/course-item-rating/types/create-course-item-rating.ts","../../src/api/methods/student/course-item-rating/index.ts","../../src/api/methods/student/course-item-comment/types/fetch-course-item-comments.ts","../../src/api/methods/student/course-item-comment/types/save-course-item-comment.ts","../../src/api/methods/student/course-item-comment/types/create-course-item-comment.ts","../../src/api/methods/student/course-item-comment/types/remove-course-item-comment.ts","../../src/api/methods/student/course-item-comment/index.ts","../../src/api/methods/auth/types/login.ts","../../src/api/methods/auth/types/refresh-token.ts","../../src/api/methods/auth/types/register.ts","../../src/api/methods/auth/types/reset-password.ts","../../src/api/methods/auth/types/forgot-password.ts","../../src/api/methods/auth/types/confirm-email.ts","../../src/api/methods/auth/types/confirm-invite.ts","../../src/api/methods/auth/types/check-invite.ts","../../src/api/methods/auth/types/login-token.ts","../../src/api/methods/auth/types/logout.ts","../../src/api/methods/auth/types/prolong-session.ts","../../src/api/methods/auth/types/me.ts","../../src/api/methods/auth/types/login-as.ts","../../src/api/methods/auth/types/send-invite.ts","../../src/api/methods/auth/types/contact.ts","../../src/api/methods/auth/types/register-contact.ts","../../src/api/methods/auth/types/email-notifications-subscription-status.ts","../../src/api/methods/auth/types/unsubscribe-email-notifications.ts","../../src/api/methods/auth/index.ts","../../src/api/methods/Notification/types/save.ts","../../src/api/methods/Notification/types/fetch.ts","../../src/api/methods/Notification/types/delete.ts","../../src/api/methods/Notification/Settings/types/fetch.ts","../../src/api/methods/Notification/Settings/types/save.ts","../../src/api/methods/Notification/Settings/index.ts","../../src/api/methods/Notification/types/fetch-count.ts","../../src/api/methods/Notification/types/mark-all-as-read.ts","../../src/api/methods/Notification/Channel/types/create.ts","../../src/api/methods/Notification/Channel/types/save.ts","../../src/api/methods/Notification/Channel/index.ts","../../src/api/methods/Notification/index.ts","../../src/api/methods/partnership/index.ts","../../src/api/methods/announcement/index.ts","../../src/api/methods/gamification/index.ts","../../src/api/Api.ts","../../src/api/clients/JwtApiClient.ts","../../src/stores/UserStore/UserStore.ts","../../src/stores/ServiceStore/ServiceStore.ts","../../src/stores/UIStore/UIStore.ts","../../src/stores/SchoolStore/SchoolStore.ts","../../../node_modules/.pnpm/@remix-run+router@1.14.2/node_modules/@remix-run/router/dist/router.js","../../../node_modules/.pnpm/react-router@6.21.2_react@17.0.2/node_modules/react-router/dist/index.js","../../src/components/hooks/useLoc/useLoc.tsx","../../src/components/PageContent/PageContent.tsx","../../src/components/hooks/useSchool/useSchool.tsx","../../src/components/hooks/useLang/useLang.tsx","../../src/models/app-settings/api-settings.ts","../../src/models/app-settings/localization-settings.ts","../../src/models/app-settings/aws-settings.ts","../../src/models/app-settings/hub-settings.ts","../../src/models/app-settings/chat-settings.ts","../../src/models/app-settings/newrelic-settings.ts","../../src/models/app-settings/QuizSettings.ts","../../src/models/app-settings/checkout.ts","../../src/models/app-settings/app-settings.ts","../../src/models/app-settings/index.ts","../../src/components/hooks/useSettings/useSettings.tsx","../../src/components/Price/Price.tsx","../../../packages/ez-editor-module/viewer/dist/index.js","../../src/components/ScriptInjector/ScriptInjection.tsx","../../src/components/selects/UtmTagSelect/UtmTagSelect.tsx","../../src/components/hooks/useApi.tsx","../../src/components/AnalyticStatistic/AnalyticStatistic.tsx","../../src/components/ItemTreeSearch/ItemTreeSearch.tsx","../../src/App/shared/DevActions/MissingWords/MissingWords.tsx","../../src/App/shared/DevActions/DevActions.tsx","../../../node_modules/.pnpm/react-router-dom@6.21.2_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-router-dom/dist/index.js","../../src/App/Router.tsx","../../src/App/shared/providers/LocProvider/LocProvider.tsx","../../src/App/shared/providers/UserProvider/UserProvider.tsx","../../../node_modules/.pnpm/react-favicon@0.0.18_react@17.0.2/node_modules/react-favicon/dist/react-favicon.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/meta_tags_context.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/utils.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/meta_tags.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/react_title.js","../../../node_modules/.pnpm/react-meta-tags@0.7.4_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/react-meta-tags/lib/index.js","../../src/hub-client/subscriptions/SchoolSupportChatChangedSubscription.ts","../../src/App/shared/providers/SchoolProvider/SchoolProvider.tsx","../../src/hub-client/subscriptions/gamification.ts","../../src/App/shared/providers/GamificationBalanceProvider/GamificationBalanceProvider.tsx","../../src/hub-client/payloads/notifications/index.ts","../../src/hub-client/subscriptions/NotificationSubscription.ts","../../src/App/shared/NotificationCenter/NotificationCenterStore.ts","../../src/views/gamification/pages/GamificationCard.tsx","../../src/views/gamification/pages/components/GamificationAchievementsCard/GamificationAchievementsCard.tsx","../../../node_modules/.pnpm/canvas-confetti@1.9.2/node_modules/canvas-confetti/dist/confetti.module.mjs","../../src/App/shared/NotificationCenter/Notifications/GamificationAchievement/GamificationAchievementNotification.tsx","../../src/App/shared/NotificationCenter/NotificationCenter.tsx","../../src/App/App.tsx","../../src/index.tsx"],"sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(factory) :\n factory();\n})((function () { 'use strict';\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n }\n\n var Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n Object.defineProperty(this, 'listeners', {\n value: {},\n writable: true,\n configurable: true\n });\n }\n\n _createClass(Emitter, [{\n key: \"addEventListener\",\n value: function addEventListener(type, callback, options) {\n if (!(type in this.listeners)) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push({\n callback: callback,\n options: options\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(type, callback) {\n if (!(type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[type];\n\n for (var i = 0, l = stack.length; i < l; i++) {\n if (stack[i].callback === callback) {\n stack.splice(i, 1);\n return;\n }\n }\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (!(event.type in this.listeners)) {\n return;\n }\n\n var stack = this.listeners[event.type];\n var stackToCall = stack.slice();\n\n for (var i = 0, l = stackToCall.length; i < l; i++) {\n var listener = stackToCall[i];\n\n try {\n listener.callback.call(this, event);\n } catch (e) {\n Promise.resolve().then(function () {\n throw e;\n });\n }\n\n if (listener.options && listener.options.once) {\n this.removeEventListener(event.type, listener.callback);\n }\n }\n\n return !event.defaultPrevented;\n }\n }]);\n\n return Emitter;\n }();\n\n var AbortSignal = /*#__PURE__*/function (_Emitter) {\n _inherits(AbortSignal, _Emitter);\n\n var _super = _createSuper(AbortSignal);\n\n function AbortSignal() {\n var _this;\n\n _classCallCheck(this, AbortSignal);\n\n _this = _super.call(this); // Some versions of babel does not transpile super() correctly for IE <= 10, if the parent\n // constructor has failed to run, then \"this.listeners\" will still be undefined and then we call\n // the parent constructor directly instead as a workaround. For general details, see babel bug:\n // https://github.com/babel/babel/issues/3041\n // This hack was added as a fix for the issue described here:\n // https://github.com/Financial-Times/polyfill-library/pull/59#issuecomment-477558042\n\n if (!_this.listeners) {\n Emitter.call(_assertThisInitialized(_this));\n } // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController().signal) to be [] for compat with the native impl\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'aborted', {\n value: false,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'onabort', {\n value: null,\n writable: true,\n configurable: true\n });\n Object.defineProperty(_assertThisInitialized(_this), 'reason', {\n value: undefined,\n writable: true,\n configurable: true\n });\n return _this;\n }\n\n _createClass(AbortSignal, [{\n key: \"toString\",\n value: function toString() {\n return '[object AbortSignal]';\n }\n }, {\n key: \"dispatchEvent\",\n value: function dispatchEvent(event) {\n if (event.type === 'abort') {\n this.aborted = true;\n\n if (typeof this.onabort === 'function') {\n this.onabort.call(this, event);\n }\n }\n\n _get(_getPrototypeOf(AbortSignal.prototype), \"dispatchEvent\", this).call(this, event);\n }\n }]);\n\n return AbortSignal;\n }(Emitter);\n var AbortController = /*#__PURE__*/function () {\n function AbortController() {\n _classCallCheck(this, AbortController);\n\n // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n // we want Object.keys(new AbortController()) to be [] for compat with the native impl\n Object.defineProperty(this, 'signal', {\n value: new AbortSignal(),\n writable: true,\n configurable: true\n });\n }\n\n _createClass(AbortController, [{\n key: \"abort\",\n value: function abort(reason) {\n var event;\n\n try {\n event = new Event('abort');\n } catch (e) {\n if (typeof document !== 'undefined') {\n if (!document.createEvent) {\n // For Internet Explorer 8:\n event = document.createEventObject();\n event.type = 'abort';\n } else {\n // For Internet Explorer 11:\n event = document.createEvent('Event');\n event.initEvent('abort', false, false);\n }\n } else {\n // Fallback where document isn't available:\n event = {\n type: 'abort',\n bubbles: false,\n cancelable: false\n };\n }\n }\n\n var signalReason = reason;\n\n if (signalReason === undefined) {\n if (typeof document === 'undefined') {\n signalReason = new Error('This operation was aborted');\n signalReason.name = 'AbortError';\n } else {\n try {\n signalReason = new DOMException('signal is aborted without reason');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n signalReason = new Error('This operation was aborted');\n signalReason.name = 'AbortError';\n }\n }\n }\n\n this.signal.reason = signalReason;\n this.signal.dispatchEvent(event);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return '[object AbortController]';\n }\n }]);\n\n return AbortController;\n }();\n\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n // These are necessary to make sure that we get correct output for:\n // Object.prototype.toString.call(new AbortController())\n AbortController.prototype[Symbol.toStringTag] = 'AbortController';\n AbortSignal.prototype[Symbol.toStringTag] = 'AbortSignal';\n }\n\n function polyfillNeeded(self) {\n if (self.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n console.log('__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill');\n return true;\n } // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // so the below feature detection needs the !self.AbortController part.\n // The Request.prototype check is also needed because Safari versions 11.1.2\n // up to and including 12.1.x has a window.AbortController present but still\n // does NOT correctly implement abortable fetch:\n // https://bugs.webkit.org/show_bug.cgi?id=174980#c2\n\n\n return typeof self.Request === 'function' && !self.Request.prototype.hasOwnProperty('signal') || !self.AbortController;\n }\n\n /**\n * Note: the \"fetch.Request\" default value is available for fetch imported from\n * the \"node-fetch\" package and not in browsers. This is OK since browsers\n * will be importing umd-polyfill.js from that path \"self\" is passed the\n * decorator so the default value will not be used (because browsers that define\n * fetch also has Request). One quirky setup where self.fetch exists but\n * self.Request does not is when the \"unfetch\" minimal fetch polyfill is used\n * on top of IE11; for this case the browser will try to use the fetch.Request\n * default value which in turn will be undefined but then then \"if (Request)\"\n * will ensure that you get a patched fetch but still no Request (as expected).\n * @param {fetch, Request = fetch.Request}\n * @returns {fetch: abortableFetch, Request: AbortableRequest}\n */\n\n function abortableFetchDecorator(patchTargets) {\n if ('function' === typeof patchTargets) {\n patchTargets = {\n fetch: patchTargets\n };\n }\n\n var _patchTargets = patchTargets,\n fetch = _patchTargets.fetch,\n _patchTargets$Request = _patchTargets.Request,\n NativeRequest = _patchTargets$Request === void 0 ? fetch.Request : _patchTargets$Request,\n NativeAbortController = _patchTargets.AbortController,\n _patchTargets$__FORCE = _patchTargets.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL = _patchTargets$__FORCE === void 0 ? false : _patchTargets$__FORCE;\n\n if (!polyfillNeeded({\n fetch: fetch,\n Request: NativeRequest,\n AbortController: NativeAbortController,\n __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL: __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL\n })) {\n return {\n fetch: fetch,\n Request: Request\n };\n }\n\n var Request = NativeRequest; // Note that the \"unfetch\" minimal fetch polyfill defines fetch() without\n // defining window.Request, and this polyfill need to work on top of unfetch\n // hence we only patch it if it's available. Also we don't patch it if signal\n // is already available on the Request prototype because in this case support\n // is present and the patching below can cause a crash since it assigns to\n // request.signal which is technically a read-only property. This latter error\n // happens when you run the main5.js node-fetch example in the repo\n // \"abortcontroller-polyfill-examples\". The exact error is:\n // request.signal = init.signal;\n // ^\n // TypeError: Cannot set property signal of # which has only a getter\n\n if (Request && !Request.prototype.hasOwnProperty('signal') || __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL) {\n Request = function Request(input, init) {\n var signal;\n\n if (init && init.signal) {\n signal = init.signal; // Never pass init.signal to the native Request implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to construct 'Request': member signal is not of type AbortSignal.\n\n delete init.signal;\n }\n\n var request = new NativeRequest(input, init);\n\n if (signal) {\n Object.defineProperty(request, 'signal', {\n writable: false,\n enumerable: false,\n configurable: true,\n value: signal\n });\n }\n\n return request;\n };\n\n Request.prototype = NativeRequest.prototype;\n }\n\n var realFetch = fetch;\n\n var abortableFetch = function abortableFetch(input, init) {\n var signal = Request && Request.prototype.isPrototypeOf(input) ? input.signal : init ? init.signal : undefined;\n\n if (signal) {\n var abortError;\n\n try {\n abortError = new DOMException('Aborted', 'AbortError');\n } catch (err) {\n // IE 11 does not support calling the DOMException constructor, use a\n // regular error object on it instead.\n abortError = new Error('Aborted');\n abortError.name = 'AbortError';\n } // Return early if already aborted, thus avoiding making an HTTP request\n\n\n if (signal.aborted) {\n return Promise.reject(abortError);\n } // Turn an event into a promise, reject it once `abort` is dispatched\n\n\n var cancellation = new Promise(function (_, reject) {\n signal.addEventListener('abort', function () {\n return reject(abortError);\n }, {\n once: true\n });\n });\n\n if (init && init.signal) {\n // Never pass .signal to the native implementation when the polyfill has\n // been installed because if we're running on top of a browser with a\n // working native AbortController (i.e. the polyfill was installed due to\n // __FORCE_INSTALL_ABORTCONTROLLER_POLYFILL being set), then passing our\n // fake AbortSignal to the native fetch will trigger:\n // TypeError: Failed to execute 'fetch' on 'Window': member signal is not of type AbortSignal.\n delete init.signal;\n } // Return the fastest promise (don't need to wait for request to finish)\n\n\n return Promise.race([cancellation, realFetch(input, init)]);\n }\n\n return realFetch(input, init);\n };\n\n return {\n fetch: abortableFetch,\n Request: Request\n };\n }\n\n (function (self) {\n\n if (!polyfillNeeded(self)) {\n return;\n }\n\n if (!self.fetch) {\n console.warn('fetch() is not available, cannot install abortcontroller-polyfill');\n return;\n }\n\n var _abortableFetch = abortableFetchDecorator(self),\n fetch = _abortableFetch.fetch,\n Request = _abortableFetch.Request;\n\n self.fetch = fetch;\n self.Request = Request;\n Object.defineProperty(self, 'AbortController', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortController\n });\n Object.defineProperty(self, 'AbortSignal', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: AbortSignal\n });\n })(typeof self !== 'undefined' ? self : global);\n\n}));\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.31.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys\n// of `null` prototype objects\nvar IE_BUG = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-create -- safe\n var O = Object.create(null);\n O[2] = 2;\n return !propertyIsEnumerable(O, 2);\n});\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null;\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","// abortcontroller-polyfill обеспечивает поддержку функциональности AbortController и метода fetch в старых браузерах (Chrome 66 и ниже)\r\nimport 'abortcontroller-polyfill/dist/polyfill-patch-fetch';\r\n\r\n// #region Chrome 49\r\nimport 'core-js/features/object/values';\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n}\r\n// #endregion","export default {\n // Options.jsx\n items_per_page: '/ halaman',\n jump_to: 'Menuju',\n jump_to_confirm: 'konfirmasi',\n page: 'Halaman',\n // Pagination.jsx\n prev_page: 'Halaman Sebelumnya',\n next_page: 'Halaman Berikutnya',\n prev_5: '5 Halaman Sebelumnya',\n next_5: '5 Halaman Berikutnya',\n prev_3: '3 Halaman Sebelumnya',\n next_3: '3 Halaman Berikutnya',\n page_size: 'ukuran halaman'\n};","var locale = {\n locale: 'id_ID',\n today: 'Hari ini',\n now: 'Sekarang',\n backToToday: 'Kembali ke hari ini',\n ok: 'Baik',\n clear: 'Bersih',\n month: 'Bulan',\n year: 'Tahun',\n timeSelect: 'pilih waktu',\n dateSelect: 'pilih tanggal',\n weekSelect: 'Pilih satu minggu',\n monthSelect: 'Pilih satu bulan',\n yearSelect: 'Pilih satu tahun',\n decadeSelect: 'Pilih satu dekade',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Bulan sebelumnya (PageUp)',\n nextMonth: 'Bulan selanjutnya (PageDown)',\n previousYear: 'Tahun lalu (Control + kiri)',\n nextYear: 'Tahun selanjutnya (Kontrol + kanan)',\n previousDecade: 'Dekade terakhir',\n nextDecade: 'Dekade berikutnya',\n previousCentury: 'Abad terakhir',\n nextCentury: 'Abad berikutnya'\n};\nexport default locale;","var locale = {\n placeholder: 'Pilih waktu'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/id_ID\";\nimport TimePickerLocale from '../../time-picker/locale/id_ID'; // Merge into a locale object\n\nvar locale = {\n lang: _extends({\n placeholder: 'Pilih tanggal',\n rangePlaceholder: ['Mulai tanggal', 'Tanggal akhir']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","import Pagination from \"rc-pagination/es/locale/id_ID\";\nimport Calendar from '../calendar/locale/id_ID';\nimport DatePicker from '../date-picker/locale/id_ID';\nimport TimePicker from '../time-picker/locale/id_ID';\nvar localeValues = {\n locale: 'id',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n Table: {\n filterTitle: 'Saring',\n filterConfirm: 'OK',\n filterReset: 'Hapus',\n selectAll: 'Pilih semua di halaman ini',\n selectInvert: 'Balikkan pilihan di halaman ini',\n sortTitle: 'Urutkan'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Batal',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Batal'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Cari',\n itemUnit: 'item',\n itemsUnit: 'item'\n },\n Upload: {\n uploading: 'Mengunggah...',\n removeFile: 'Hapus file',\n uploadError: 'Kesalahan pengunggahan',\n previewFile: 'File pratinjau',\n downloadFile: 'Unduh berkas'\n },\n Empty: {\n description: 'Tidak ada data'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ сторінці',\n jump_to: 'Перейти',\n jump_to_confirm: 'підтвердити',\n page: '',\n // Pagination.jsx\n prev_page: 'Попередня сторінка',\n next_page: 'Наступна сторінка',\n prev_5: 'Попередні 5 сторінок',\n next_5: 'Наступні 5 сторінок',\n prev_3: 'Попередні 3 сторінки',\n next_3: 'Наступні 3 сторінки',\n page_size: 'Page Size'\n};","var locale = {\n locale: 'uk_UA',\n today: 'Сьогодні',\n now: 'Зараз',\n backToToday: 'Поточна дата',\n ok: 'OK',\n clear: 'Очистити',\n month: 'Місяць',\n year: 'Рік',\n timeSelect: 'Обрати час',\n dateSelect: 'Обрати дату',\n monthSelect: 'Обрати місяць',\n yearSelect: 'Обрати рік',\n decadeSelect: 'Обрати десятиріччя',\n yearFormat: 'YYYY',\n dateFormat: 'D-M-YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D-M-YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Попередній місяць (PageUp)',\n nextMonth: 'Наступний місяць (PageDown)',\n previousYear: 'Попередній рік (Control + left)',\n nextYear: 'Наступний рік (Control + right)',\n previousDecade: 'Попереднє десятиріччя',\n nextDecade: 'Наступне десятиріччя',\n previousCentury: 'Попереднє століття',\n nextCentury: 'Наступне століття'\n};\nexport default locale;","var locale = {\n placeholder: 'Оберіть час'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/uk_UA\";\nimport TimePickerLocale from '../../time-picker/locale/uk_UA'; // Merge into a locale object\n\nvar locale = {\n lang: _extends({\n placeholder: 'Оберіть дату',\n rangePlaceholder: ['Початкова дата', 'Кінцева дата']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/uk_UA\";\nimport Calendar from '../calendar/locale/uk_UA';\nimport DatePicker from '../date-picker/locale/uk_UA';\nimport TimePicker from '../time-picker/locale/uk_UA';\nvar typeTemplate = '${label} не є типом ${type}';\nvar localeValues = {\n locale: 'uk',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Будь ласка, оберіть'\n },\n Table: {\n filterTitle: 'Фільтрувати',\n filterConfirm: 'OK',\n filterReset: 'Скинути',\n filterEmptyText: 'Фільтри відсутні',\n filterCheckall: 'Обрати всі',\n filterSearchPlaceholder: 'Пошук у фільтрах',\n emptyText: 'Даних немає',\n selectAll: 'Обрати всі на сторінці',\n selectInvert: 'Інвертувати вибір',\n selectNone: 'Очистити вибір',\n selectionAll: 'Обрати всі',\n sortTitle: 'Сортувати',\n expand: 'Розгорнути рядок',\n collapse: 'Згорнути рядок',\n triggerDesc: 'Сортувати за спаданням',\n triggerAsc: 'Сортувати за зростанням',\n cancelSort: 'Відмінити сортування'\n },\n Modal: {\n okText: 'Гаразд',\n cancelText: 'Скасувати',\n justOkText: 'Гаразд'\n },\n Popconfirm: {\n okText: 'Гаразд',\n cancelText: 'Скасувати'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Введіть текст для пошуку',\n itemUnit: 'елем.',\n itemsUnit: 'елем.',\n remove: 'Видалити',\n selectCurrent: 'Вибрати поточну сторінку',\n removeCurrent: 'Скасувати вибір на сторінці',\n selectAll: 'Вибрати всі дані',\n removeAll: 'Скасувати вибір',\n selectInvert: 'Інвертувати поточну сторінку'\n },\n Upload: {\n uploading: 'Завантаження ...',\n removeFile: 'Видалити файл',\n uploadError: 'Помилка завантаження',\n previewFile: 'Попередній перегляд файлу',\n downloadFile: 'Завантажити файл'\n },\n Empty: {\n description: 'Даних немає'\n },\n Icon: {\n icon: 'іконка'\n },\n Text: {\n edit: 'Редагувати',\n copy: 'Скопіювати',\n copied: 'Скопійовано',\n expand: 'Розширити'\n },\n PageHeader: {\n back: 'Назад'\n },\n Form: {\n optional: '(опціонально)',\n defaultValidateMessages: {\n \"default\": 'Помилка валідації для поля ${label}',\n required: 'Будь ласка, заповніть ${label}',\n \"enum\": 'Лише одне зі значень [${enum}] доступне для ${label}',\n whitespace: 'Значення у полі ${label} не може бути пробілом',\n date: {\n format: 'Не валідний формат дати у ${label}',\n parse: 'Значення ${label} не може бути приведене до дати',\n invalid: 'Не валідна дата у ${label}'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} має містити ${len} символів',\n min: '${label} має містити не менш, ніж ${min} символів',\n max: '${label} має містити не більш, ніж ${max} символів',\n range: '${label} має містити ${min}-${max} символів'\n },\n number: {\n len: '${label} має дорівнювати ${len}',\n min: '${label} має бути не менш, ніж ${min}',\n max: '${label} має бути не більш, ніж ${max}',\n range: '${label} має бути в межах ${min}-${max}'\n },\n array: {\n len: '${label} має містити ${len} елементи',\n min: '${label} має містити не менш, ніж ${min} елементи',\n max: '${label} має містити не більш, ніж ${max} елементи',\n range: 'Кількість елементів в ${label} має бути в межах ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} не відповідає шаблону ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Попередній перегляд'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ página',\n jump_to: 'Ir a',\n jump_to_confirm: 'confirmar',\n page: 'Página',\n // Pagination.jsx\n prev_page: 'Página anterior',\n next_page: 'Página siguiente',\n prev_5: '5 páginas previas',\n next_5: '5 páginas siguientes',\n prev_3: '3 páginas previas',\n next_3: '3 páginas siguientes',\n page_size: 'tamaño de página'\n};","var locale = {\n locale: 'es_ES',\n today: 'Hoy',\n now: 'Ahora',\n backToToday: 'Volver a hoy',\n ok: 'Aceptar',\n clear: 'Limpiar',\n month: 'Mes',\n year: 'Año',\n timeSelect: 'Seleccionar hora',\n dateSelect: 'Seleccionar fecha',\n monthSelect: 'Elegir un mes',\n yearSelect: 'Elegir un año',\n decadeSelect: 'Elegir una década',\n yearFormat: 'YYYY',\n dateFormat: 'D/M/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'D/M/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Mes anterior (PageUp)',\n nextMonth: 'Mes siguiente (PageDown)',\n previousYear: 'Año anterior (Control + left)',\n nextYear: 'Año siguiente (Control + right)',\n previousDecade: 'Década anterior',\n nextDecade: 'Década siguiente',\n previousCentury: 'Siglo anterior',\n nextCentury: 'Siglo siguiente'\n};\nexport default locale;","var locale = {\n placeholder: 'Seleccionar hora'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/es_ES\";\nimport TimePickerLocale from '../../time-picker/locale/es_ES'; // Merge into a locale object\n\nvar locale = {\n lang: _extends({\n placeholder: 'Seleccionar fecha',\n rangePlaceholder: ['Fecha inicial', 'Fecha final']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/es_ES\";\nimport Calendar from '../calendar/locale/es_ES';\nimport DatePicker from '../date-picker/locale/es_ES';\nimport TimePicker from '../time-picker/locale/es_ES';\nvar typeTemplate = '${label} no es un ${type} válido';\nvar localeValues = {\n locale: 'es',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Seleccione'\n },\n Table: {\n filterTitle: 'Filtrar menú',\n filterConfirm: 'Aceptar',\n filterReset: 'Reiniciar',\n filterEmptyText: 'Sin filtros',\n filterCheckall: 'Seleccionar todo',\n filterSearchPlaceholder: 'Buscar en filtros',\n emptyText: 'Sin datos',\n selectAll: 'Seleccionar todo',\n selectInvert: 'Invertir selección',\n selectNone: 'Vacíe todo',\n selectionAll: 'Seleccionar todos los datos',\n sortTitle: 'Ordenar',\n expand: 'Expandir fila',\n collapse: 'Colapsar fila',\n triggerDesc: 'Click para ordenar en orden descendente',\n triggerAsc: 'Click para ordenar en orden ascendente',\n cancelSort: 'Click para cancelar ordenamiento'\n },\n Modal: {\n okText: 'Aceptar',\n cancelText: 'Cancelar',\n justOkText: 'Aceptar'\n },\n Popconfirm: {\n okText: 'Aceptar',\n cancelText: 'Cancelar'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Buscar aquí',\n itemUnit: 'elemento',\n itemsUnit: 'elementos',\n remove: 'Eliminar',\n selectCurrent: 'Seleccionar página actual',\n removeCurrent: 'Remover página actual',\n selectAll: 'Seleccionar todos los datos',\n removeAll: 'Eliminar todos los datos',\n selectInvert: 'Invertir página actual'\n },\n Upload: {\n uploading: 'Subiendo...',\n removeFile: 'Eliminar archivo',\n uploadError: 'Error al subir el archivo',\n previewFile: 'Vista previa',\n downloadFile: 'Descargar archivo'\n },\n Empty: {\n description: 'No hay datos'\n },\n Icon: {\n icon: 'ícono'\n },\n Text: {\n edit: 'Editar',\n copy: 'Copiar',\n copied: 'Copiado',\n expand: 'Expandir'\n },\n PageHeader: {\n back: 'Volver'\n },\n Form: {\n optional: '(opcional)',\n defaultValidateMessages: {\n \"default\": 'Error de validación del campo ${label}',\n required: 'Por favor ingresar ${label}',\n \"enum\": '${label} debe ser uno de [${enum}]',\n whitespace: '${label} no puede ser un carácter en blanco',\n date: {\n format: 'El formato de fecha de ${label} es inválido',\n parse: '${label} no se puede convertir a una fecha',\n invalid: '${label} es una fecha inválida'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} debe tener ${len} caracteres',\n min: '${label} debe tener al menos ${min} caracteres',\n max: '${label} debe tener hasta ${max} caracteres',\n range: '${label} debe tener entre ${min}-${max} caracteres'\n },\n number: {\n len: '${label} debe ser igual a ${len}',\n min: '${label} valor mínimo es ${min}',\n max: '${label} valor máximo es ${max}',\n range: '${label} debe estar entre ${min}-${max}'\n },\n array: {\n len: 'Debe ser ${len} ${label}',\n min: 'Al menos ${min} ${label}',\n max: 'A lo mucho ${max} ${label}',\n range: 'El monto de ${label} debe estar entre ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} no coincide con el patrón ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Previsualización'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '條/頁',\n jump_to: '跳至',\n jump_to_confirm: '確定',\n page: '頁',\n // Pagination.jsx\n prev_page: '上一頁',\n next_page: '下一頁',\n prev_5: '向前 5 頁',\n next_5: '向後 5 頁',\n prev_3: '向前 3 頁',\n next_3: '向後 3 頁',\n page_size: '頁碼'\n};","var locale = {\n locale: 'zh_TW',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '確定',\n timeSelect: '選擇時間',\n dateSelect: '選擇日期',\n weekSelect: '選擇周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上個月 (翻頁上鍵)',\n nextMonth: '下個月 (翻頁下鍵)',\n monthSelect: '選擇月份',\n yearSelect: '選擇年份',\n decadeSelect: '選擇年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',\n previousYear: '上一年 (Control鍵加左方向鍵)',\n nextYear: '下一年 (Control鍵加右方向鍵)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世紀',\n nextCentury: '下一世紀'\n};\nexport default locale;","var locale = {\n placeholder: '請選擇時間'\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/zh_TW\";\nimport TimePickerLocale from '../../time-picker/locale/zh_TW'; // 统一合并为完整的 Locale\n\nvar locale = {\n lang: _extends({\n placeholder: '請選擇日期',\n yearPlaceholder: '請選擇年份',\n quarterPlaceholder: '請選擇季度',\n monthPlaceholder: '請選擇月份',\n weekPlaceholder: '請選擇周',\n rangePlaceholder: ['開始日期', '結束日期'],\n rangeYearPlaceholder: ['開始年份', '結束年份'],\n rangeMonthPlaceholder: ['開始月份', '結束月份'],\n rangeQuarterPlaceholder: ['開始季度', '結束季度'],\n rangeWeekPlaceholder: ['開始周', '結束周']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\nlocale.lang.ok = '確 定'; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_TW\";\nimport Calendar from '../calendar/locale/zh_TW';\nimport DatePicker from '../date-picker/locale/zh_TW';\nimport TimePicker from '../time-picker/locale/zh_TW';\nvar typeTemplate = '${label}不是一個有效的${type}';\nvar localeValues = {\n locale: 'zh-tw',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: '請選擇'\n },\n Table: {\n filterTitle: '篩選器',\n filterConfirm: '確定',\n filterReset: '重置',\n filterEmptyText: '無篩選項',\n selectAll: '全部選取',\n selectInvert: '反向選取',\n selectNone: '清空所有',\n selectionAll: '全選所有',\n sortTitle: '排序',\n expand: '展開行',\n collapse: '關閉行',\n triggerDesc: '點擊降序',\n triggerAsc: '點擊升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '確定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n okText: '確定',\n cancelText: '取消'\n },\n Transfer: {\n searchPlaceholder: '搜尋資料',\n itemUnit: '項目',\n itemsUnit: '項目',\n remove: '删除',\n selectCurrent: '全選當頁',\n removeCurrent: '删除當頁',\n selectAll: '全選所有',\n removeAll: '删除全部',\n selectInvert: '反選當頁'\n },\n Upload: {\n uploading: '正在上傳...',\n removeFile: '刪除檔案',\n uploadError: '上傳失敗',\n previewFile: '檔案預覽',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '無此資料'\n },\n Icon: {\n icon: '圖標'\n },\n Text: {\n edit: '編輯',\n copy: '複製',\n copied: '複製成功',\n expand: '展開'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可選)',\n defaultValidateMessages: {\n \"default\": '字段驗證錯誤${label}',\n required: '請輸入${label}',\n \"enum\": '${label}必須是其中一個[${enum}]',\n whitespace: '${label}不能為空字符',\n date: {\n format: '${label}日期格式無效',\n parse: '${label}不能轉換為日期',\n invalid: '${label}是一個無效日期'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label}須為${len}個字符',\n min: '${label}最少${min}個字符',\n max: '${label}最多${max}個字符',\n range: '${label}須在${min}-${max}字符之間'\n },\n number: {\n len: '${label}必須等於${len}',\n min: '${label}最小值為${min}',\n max: '${label}最大值為${max}',\n range: '${label}須在${min}-${max}之間'\n },\n array: {\n len: '須為${len}個${label}',\n min: '最少${min}個${label}',\n max: '最多${max}個${label}',\n range: '${label}數量須在${min}-${max}之間'\n },\n pattern: {\n mismatch: '${label}與模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '預覽'\n }\n};\nexport default localeValues;","var locale = {\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n};\nexport default locale;","var locale = {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/zh_CN\";\nimport TimePickerLocale from '../../time-picker/locale/zh_CN'; // 统一合并为完整的 Locale\n\nvar locale = {\n lang: _extends({\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeQuarterPlaceholder: ['开始季度', '结束季度'],\n rangeWeekPlaceholder: ['开始周', '结束周']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // should add whitespace between char in Button\n\nlocale.lang.ok = '确定'; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_CN\";\nimport Calendar from '../calendar/locale/zh_CN';\nimport DatePicker from '../date-picker/locale/zh_CN';\nimport TimePicker from '../time-picker/locale/zh_CN';\nvar typeTemplate = '${label}不是一个有效的${type}';\nvar localeValues = {\n locale: 'zh-cn',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n // locales for all components\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n filterCheckall: '全选',\n filterSearchPlaceholder: '在筛选项中搜索',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectNone: '清空所有',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可选)',\n defaultValidateMessages: {\n \"default\": '字段验证错误${label}',\n required: '请输入${label}',\n \"enum\": '${label}必须是其中一个[${enum}]',\n whitespace: '${label}不能为空字符',\n date: {\n format: '${label}日期格式无效',\n parse: '${label}不能转换为日期',\n invalid: '${label}是一个无效日期'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label}须为${len}个字符',\n min: '${label}最少${min}个字符',\n max: '${label}最多${max}个字符',\n range: '${label}须在${min}-${max}字符之间'\n },\n number: {\n len: '${label}必须等于${len}',\n min: '${label}最小值为${min}',\n max: '${label}最大值为${max}',\n range: '${label}须在${min}-${max}之间'\n },\n array: {\n len: '须为${len}个${label}',\n min: '最少${min}个${label}',\n max: '最多${max}个${label}',\n range: '${label}数量须在${min}-${max}之间'\n },\n pattern: {\n mismatch: '${label}与模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '预览'\n }\n};\nexport default localeValues;","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\nimport moment from '../moment';\n\nfunction plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n}\nfunction relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n}\nvar monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n];\n\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\n// Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\nexport default moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\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","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\nimport moment from '../moment';\n\nfunction plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n}\nfunction relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n}\nfunction weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n}\nfunction processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n}\n\nexport default moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.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: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n});\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\nimport moment from '../moment';\n\nexport default moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.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 [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\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","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\nimport moment from '../moment';\n\nvar monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport default moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\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 invalidDate: 'Fecha inválida',\n});\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\nimport moment from '../moment';\n\nexport default moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n});\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\nimport moment from '../moment';\n\nexport default moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\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","import { ContactCourseFilter } from '@axl/accel-framework/models';\r\n\r\nexport default class StudentCourseFilter extends ContactCourseFilter {\r\n constructor(filter?: Partial) {\r\n super(filter);\r\n if (filter) this.update(filter);\r\n }\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}\r\n","import { action, observable } from 'mobx';\r\nimport { Contact } from '@axl/accel-framework/models';\r\nimport { StudentSession } from 'models';\r\n\r\nexport declare type StudentTag = {\r\n id: string;\r\n name: string;\r\n}\r\nexport declare type StudentGroup = {\r\n id: string;\r\n name: string;\r\n}\r\nexport default class Student extends Contact {\r\n constructor(student?: Partial) {\r\n super(student);\r\n if (student)\r\n this.update(student);\r\n }\r\n\r\n @observable session: StudentSession;\r\n @observable tags: StudentTag[];\r\n @observable groups: StudentGroup[];\r\n @observable bonusBalance: number;\r\n\r\n static fromJson(json: any) {\r\n return new Student({\r\n ...Contact.fromJson(json),\r\n session: json.session ? StudentSession.fromJson(json.session) : undefined,\r\n tags: json.tags ?? [],\r\n groups: json.groups ?? [],\r\n bonusBalance: json.bonusBalance ?? 0\r\n });\r\n }\r\n\r\n @action update(student: Partial) {\r\n super.update(student);\r\n }\r\n}","import { Entity } from '@axl/accel-framework/models';\r\nimport { isEmpty } from 'lodash';\r\nimport { observable, action, computed } from 'mobx';\r\n\r\nexport default class StudentSession extends Entity {\r\n constructor(session?: Partial) {\r\n super(session);\r\n if (session) this.update(session);\r\n }\r\n\r\n @observable adminId: string;\r\n @observable expiredDate?: Date;\r\n\r\n static fromJson(json: any): StudentSession {\r\n return new StudentSession({\r\n ...json,\r\n expiredDate: json.expiredDate ? new Date(json.expiredDate) : undefined\r\n });\r\n }\r\n\r\n @action update(item: Partial) {\r\n super.update(item);\r\n }\r\n\r\n @computed get isAdmin() {\r\n return !isEmpty(this.adminId);\r\n }\r\n}","import { action } from \"mobx\";\r\nimport { School as BaseSchool, SchoolProfileSettings } from \"@axl/accel-framework/models\";\r\n\r\nexport default class School extends BaseSchool {\r\n constructor(settings: Partial) {\r\n super();\r\n if (settings)\r\n this.update(settings);\r\n }\r\n\r\n isLocked: boolean;\r\n\r\n @action\r\n update(entity: Partial) {\r\n super.update(entity);\r\n }\r\n\r\n static fromJson(json: any): School {\r\n return new School({\r\n ...BaseSchool.fromJson(json),\r\n // TODO rename response model to admin naming 'StudentProfileSettings'\r\n profileSettings: SchoolProfileSettings.fromJson(json.profileSettings),\r\n isLocked: json.isLocked,\r\n });\r\n }\r\n}","import { observable, action, computed } from 'mobx';\r\nimport { ContactCert, Entity } from '@axl/accel-framework/models';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport default class SchoolCourse extends Entity {\r\n constructor(course?: Partial) {\r\n super(course);\r\n if (course) this.update(course);\r\n }\r\n\r\n @observable title: string;\r\n @observable shortDescription: string;\r\n @observable freeAccess: boolean;\r\n @observable isCompleteAnyCourseRequirement: boolean;\r\n @observable primaryImageCloudKey: string;\r\n @observable studentCourse?: StudentCourse;\r\n @observable studentAccessDate?: Date;\r\n @observable studentHasAccess: boolean;\r\n @observable categories: string[];\r\n @observable requirements: string[];\r\n @observable cert: ContactCert | null;\r\n\r\n @computed get hasRequirements() {\r\n return this.requirements && this.requirements.length > 0;\r\n }\r\n\r\n @computed get hasCourseItem() {\r\n return this.studentCourse && this.studentCourse.currentCourseItem;\r\n }\r\n\r\n static fromJson(json: any): SchoolCourse {\r\n return new SchoolCourse({\r\n ...json,\r\n studentAccessDate: json.studentAccessDate ? new Date(json.studentAccessDate) : undefined,\r\n studentCourse: json.studentCourse ? StudentCourse.fromJson(json.studentCourse) : undefined,\r\n cert: json.cert ? ContactCert.fromJson(json.cert) : undefined,\r\n });\r\n }\r\n\r\n @action\r\n update(course: Partial, allowUndefined = false) {\r\n super.update(course, allowUndefined);\r\n }\r\n}\r\n\r\n","import { ContactCourse, Contact, Course, CourseItem } from '@axl/accel-framework/models';\r\nimport { action, computed, observable } from 'mobx';\r\nimport moment from 'moment';\r\n\r\nexport default class StudentCourse extends ContactCourse {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n /**\r\n * sections excluded\r\n */\r\n totalItemCount: number;\r\n initialCourseItemId: string;\r\n @observable flowBeginDate?: moment.Moment;\r\n @observable accessBeginDate?: moment.Moment;\r\n @observable accessEndDate?: moment.Moment;\r\n @observable isSubscription: boolean;\r\n\r\n static fromJson(json: any): StudentCourse {\r\n return new StudentCourse({\r\n id: json.id,\r\n softDeleted: json.softDeleted,\r\n state: json.state,\r\n progress: json.progress,\r\n feedback: json.feedback,\r\n score: json.score,\r\n lastActivityDate: json.lastActivityDate ? new Date(json.lastActivityDate) : undefined,\r\n contact: json.student ? Contact.fromJson(json.student) : undefined,\r\n course: json.course ? Course.fromJson(json.course) : undefined,\r\n initialCourseItemId: json.currentCourseItem?.id,\r\n createdDate: json.createdDate ? new Date(json.createdDate) : undefined,\r\n updatedDate: json.updatedDate ? new Date(json.updatedDate) : undefined,\r\n beginDate: json.beginDate ? new Date(json.beginDate) : undefined,\r\n endDate: json.endDate ? new Date(json.endDate) : undefined,\r\n flowBeginDate: json.flowBeginDate ? moment(json.flowBeginDate) : undefined,\r\n accessBeginDate: json.accessBeginDate ? moment(json.accessBeginDate) : undefined,\r\n accessEndDate: json.accessEndDate ? moment(json.accessEndDate) : undefined,\r\n isSubscription: json.isSubscription ?? false,\r\n currentCourseItem: json.currentCourseItem ? CourseItem.fromJson(json.currentCourseItem) : undefined,\r\n });\r\n }\r\n\r\n @action\r\n update(studentCourse: Partial) {\r\n super.update(studentCourse);\r\n }\r\n\r\n @computed\r\n get isInFlow() {\r\n return this.flowBeginDate != null;\r\n }\r\n}\r\n","import { ContactCourse } from '@axl/accel-framework/models';\r\nimport { StudentCourseItemProgress } from 'models';\r\n\r\nexport default class StudentCourseProgress {\r\n constructor(progress?: Partial) {\r\n if (progress) Object.assign(this, progress);\r\n }\r\n\r\n courseItemId: string;\r\n contactCourse: ContactCourse;\r\n courseItemProgress: StudentCourseItemProgress;\r\n\r\n static fromJson(json: any): StudentCourseProgress {\r\n return new StudentCourseProgress({\r\n courseItemId: json.courseItemId,\r\n contactCourse: json.studentCourse ? ContactCourse.fromJson(json.studentCourse) : undefined,\r\n courseItemProgress: json.courseItemProgress ? StudentCourseItemProgress.fromJson(json.courseItemProgress) : undefined,\r\n });\r\n }\r\n}\r\n\r\n","import { action, observable, computed } from 'mobx';\r\nimport { Entity, SchoolContentItemProgressRating } from '@axl/accel-framework/models';\r\n\r\nexport declare type CourseItemProgressStatus = 'default' | 'opened';\r\nexport declare type CourseItemProgressTaskStatus = 'default' | 'started' | 'pending' | 'completed';\r\n\r\nexport class StudentCourseItemBaseProgress extends Entity {\r\n @observable beginDate: Date | null;\r\n @observable completeDate: Date | null;\r\n @observable numberUncheckedTasks: number = 0;\r\n @observable numberCorrectTasks: number = 0;\r\n @observable numberIncorrectTasks: number = 0;\r\n}\r\n\r\nexport default class StudentCourseItemProgress extends StudentCourseItemBaseProgress {\r\n constructor(progress?: Partial) {\r\n super(progress);\r\n if (progress) this.update(progress);\r\n }\r\n\r\n @observable precompleteDate: Date | null;\r\n @observable theoryStatus?: boolean;\r\n @observable testStatus?: boolean;\r\n @observable taskStatus?: CourseItemProgressTaskStatus;\r\n @observable status: CourseItemProgressStatus;\r\n @observable rating: SchoolContentItemProgressRating;\r\n\r\n @computed get theoryCompleted() {\r\n return this.theoryStatus == true;\r\n }\r\n @computed get testsCompleted() {\r\n return this.testStatus == true;\r\n }\r\n @computed get tasksCompleted() {\r\n return this.taskStatus == 'completed';\r\n }\r\n\r\n static fromJson(json: any): StudentCourseItemProgress {\r\n return new StudentCourseItemProgress({\r\n ...json,\r\n beginDate: new Date(json.beginDate),\r\n completeDate: json.completeDate ? new Date(json.completeDate) : null,\r\n precompleteDate: json.precompleteDate ? new Date(json.precompleteDate) : null,\r\n rating: json.rating ? SchoolContentItemProgressRating.fromJson(json.rating) : null,\r\n });\r\n }\r\n\r\n @action update(progress: Partial) {\r\n super.update(progress);\r\n }\r\n}\r\n\r\nexport class StudentCourseSectionProgress extends StudentCourseItemBaseProgress {\r\n constructor(progress?: Partial) {\r\n super();\r\n if (progress) this.update(progress);\r\n }\r\n\r\n @action update(progress: Partial) {\r\n super.update(progress);\r\n }\r\n}","//! moment-timezone.js\n//! version : 0.5.43\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.43\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));\n","var moment = module.exports = require(\"./moment-timezone\");\nmoment.tz.load(require('./data/packed/latest.json'));\n","import { observable, action, computed } from 'mobx';\r\nimport { AccelFile, Course, CourseItemType, Entity, CoursePlan } from '@axl/accel-framework/models';\r\nimport { StudentCourseItemTest, StudentCourseItemTask, StudentCourse, StudentCourseItemProgress } from 'models';\r\nimport { FlowTimeDelayCondition, RegularTimeDelayCondition, CourseItemAvailability } from '@axl/accel-framework/models/course/item/course-item';\r\nimport { StudentCourseItemBaseProgress, StudentCourseSectionProgress } from './student-course-item-progress/student-course-item-progress';\r\nimport type { TimeMeasure, Timezone } from '@axl/accel-framework/models';\r\nimport { isNil } from 'lodash';\r\nimport { TimeSpan } from '@axl/accel-framework/utils';\r\nimport { DayOfWeek } from '@axl/accel-framework/enums';\r\nimport moment from 'moment-timezone';\r\nimport { dayOfWeekMap } from '@axl/accel-framework/enums/DayOfWeek';\r\n\r\n/**\r\n * DO NOT FORGET TO UPDATE TYPE IN SCHOOL SDK client\\site\\src\\school-sdk\\index.ts\r\n */\r\nexport declare type CourseItemTab = 'theory' | 'tests' | 'tasks' | 'rating';\r\nexport declare type CourseItemAction = 'select' | 'complete' | 'reset' | 'block' | 'unblock';\r\n\r\nexport type StudentCourseItemAvailability = {\r\n result: boolean,\r\n isSection?: boolean,\r\n willBeAvailableOn?: moment.Moment,\r\n willBeAvailableIf?: { in?: TimeSpan, item?: StudentCourseItem, condition: 'afterStart' | 'afterComplete' };\r\n needToCompletePrevStep?: boolean,\r\n needToCompletePrevSteps?: boolean,\r\n blockingCourseItem?: StudentCourseItem,\r\n requiredPlans?: string[]\r\n}\r\n\r\nexport default class StudentCourseItem extends Entity {\r\n constructor(item?: Partial) {\r\n super(item);\r\n this._tab = this.defaultTab;\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable title: string;\r\n @observable position: number;\r\n @observable isDraft: boolean;\r\n @observable isOptional: boolean;\r\n @observable type: CourseItemType;\r\n @observable comment: string;\r\n\r\n // restrictions and availability\r\n @observable allowComments: boolean;\r\n @observable showComments: boolean; // TODO\r\n @observable disableCommentModeration: boolean; // TODO\r\n @observable ratingEnabled: boolean;\r\n @observable ratingRequired: boolean;\r\n @observable ratingCommentRequired: boolean;\r\n @observable availability: CourseItemAvailability;\r\n\r\n @observable disableTimeLimits: boolean;\r\n @observable regularTimeDelayActive: boolean;\r\n @observable regularTimeDelay: number;\r\n @observable regularTimeDelayCondition: RegularTimeDelayCondition;\r\n @observable regularTimeDelayMeasureType: TimeMeasure;\r\n @observable regularWaitUntilTimeActive: boolean;\r\n @observable regularWaitUntilTime: moment.Moment;\r\n @observable regularWaitUntilTimeDaysOfWeekActive: boolean;\r\n @observable regularWaitUntilDaysOfWeek: DayOfWeek[];\r\n\r\n @observable flowTimeDelayActive: boolean;\r\n @observable flowTimeDelay: number;\r\n @observable flowTimeDelayCondition: FlowTimeDelayCondition;\r\n @observable flowTimeDelayMeasureType: TimeMeasure;\r\n @observable flowWaitUntilTimeActive: boolean;\r\n @observable flowWaitUntilTime: moment.Moment;\r\n @observable flowWaitUntilTimeDaysOfWeekActive: boolean;\r\n @observable flowWaitUntilDaysOfWeek: DayOfWeek[];\r\n\r\n @observable dateDelayActive: boolean;\r\n @observable dateDelay: moment.Moment;\r\n\r\n @observable preventCopingAndSelectingText: boolean; // TODO\r\n\r\n @observable designHTMLPublished: string;\r\n @observable designStylePublished: string;\r\n\r\n @observable blockCourseUntilTasksApproved: boolean;\r\n @observable theoryVisible: boolean;\r\n @observable tasksVisible: boolean;\r\n @observable testsVisible: boolean;\r\n @computed get ratingVisible(): boolean {\r\n return this.allowComments || this.ratingEnabled;\r\n }\r\n\r\n @observable score: number; // TODO\r\n\r\n @observable files: AccelFile[];\r\n\r\n @observable progress: StudentCourseItemProgress;\r\n @observable tests: StudentCourseItemTest[] = [];\r\n @observable tasks: StudentCourseItemTask[] = [];\r\n @observable requiredPlans: string[];\r\n\r\n @observable currentTest: StudentCourseItemTest | null = null;\r\n\r\n @observable parent: StudentCourseItem | null;\r\n @observable parentItemId?: string | null;\r\n\r\n @observable children: StudentCourseItem[] = [];\r\n\r\n @observable previousItem: StudentCourseItem | null;\r\n @observable nextItem: StudentCourseItem | null;\r\n @observable studentCourse: StudentCourse;\r\n @observable course: Course;\r\n\r\n @observable fetching: boolean;\r\n\r\n /** \r\n * position regarding all steps\r\n */\r\n globalPosition: number;\r\n /**\r\n * level of the item in the tree\r\n */\r\n level: number;\r\n\r\n schoolTimezone: Timezone;\r\n\r\n\r\n /**\r\n * returns the nearest previous section on the same level is exists\r\n */\r\n @computed get previousSection(): StudentCourseItem | null {\r\n let prevItemSection = this.previousItem?.parent ?? null;\r\n while (prevItemSection != null) {\r\n if (prevItemSection.parent?.id === this.parent?.id)\r\n return prevItemSection;\r\n prevItemSection = prevItemSection.parent ?? null;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get firstAvailableTab() {\r\n if (this.theoryVisible) return 'theory';\r\n if (this.testsVisible) return 'tests';\r\n if (this.tasksVisible) return 'tasks';\r\n if (this.ratingVisible) return 'rating';\r\n return 'theory';\r\n }\r\n\r\n @computed get itemCount() {\r\n if (this.type == CourseItemType.Step) return 0;\r\n let count = this.children.length;\r\n for (const child of this.children) {\r\n count += child.itemCount;\r\n }\r\n return count;\r\n }\r\n\r\n @computed get itemCompletedCount() {\r\n if (this.type == CourseItemType.Step) return 0;\r\n let count = this.children.filter(x => x.completed).length;\r\n for (const child of this.children) {\r\n count += child.itemCompletedCount;\r\n }\r\n return count;\r\n }\r\n\r\n @computed get stepCount() {\r\n if (this.type == CourseItemType.Step) return 0;\r\n let count = this.children.count(x => x.type == CourseItemType.Step);\r\n for (const child of this.children) {\r\n count += child.stepCount;\r\n }\r\n return count;\r\n }\r\n\r\n @computed get taskCount() {\r\n if (this.type == CourseItemType.Step)\r\n return this.tasks.length;\r\n return this.children.reduce((a, b) => a + b.taskCount, 0);\r\n }\r\n\r\n @computed get taskCompletedCount() {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.numberCorrectTasks ?? 0;\r\n return this.children.reduce((a, b) => a + b.taskCompletedCount, 0);\r\n }\r\n\r\n @computed get sectionProgress(): StudentCourseSectionProgress {\r\n const p = new StudentCourseSectionProgress();\r\n let isEveryChildCompleted = true;\r\n // use accessibleChildren to skip prohibited items due to plan access\r\n for (const child of this.accessibleChildren) {\r\n const progress: StudentCourseItemBaseProgress | undefined =\r\n child.type == CourseItemType.Section\r\n ? child.sectionProgress\r\n : child.progress;\r\n\r\n if (!progress) {\r\n isEveryChildCompleted = false;\r\n p.completeDate = null;\r\n continue;\r\n }\r\n\r\n p.numberCorrectTasks += progress.numberCorrectTasks;\r\n p.numberIncorrectTasks += progress.numberIncorrectTasks;\r\n p.numberUncheckedTasks += progress.numberUncheckedTasks;\r\n\r\n if (isEveryChildCompleted) {\r\n if (!progress.completeDate) {\r\n isEveryChildCompleted = false;\r\n p.completeDate = null;\r\n }\r\n else if (!p.completeDate || p.completeDate < progress.completeDate)\r\n p.completeDate = progress.completeDate;\r\n }\r\n\r\n if (progress.beginDate) {\r\n if (!p.beginDate || p.beginDate > progress.beginDate)\r\n p.beginDate = progress.beginDate;\r\n }\r\n }\r\n return p;\r\n }\r\n\r\n @computed get ratingCompleted() {\r\n if (!this.ratingEnabled || !this.ratingRequired) return true;\r\n // has required rating\r\n if (this.progress?.rating == null) return false;\r\n if (!this.ratingCommentRequired)\r\n return true;\r\n // comment required\r\n return this.progress.rating.comment?.length > 0;\r\n }\r\n\r\n @computed get completed(): boolean {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.completeDate != null;\r\n return this.sectionProgress?.completeDate != null;\r\n }\r\n\r\n @computed get beginDate(): Date | null {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.beginDate;\r\n return this.sectionProgress?.beginDate;\r\n }\r\n\r\n @computed get completeDate(): Date | null {\r\n if (this.type == CourseItemType.Step)\r\n return this.progress?.completeDate;\r\n return this.sectionProgress?.completeDate;\r\n }\r\n\r\n @computed get precompleted() { return this.progress?.precompleteDate != null; }\r\n @computed get fullPosition() {\r\n let position = '';\r\n let section = this.parent;\r\n while (section != null) {\r\n position += `${section.position}.`;\r\n section = section.parent;\r\n }\r\n position += this.position;\r\n return position;\r\n }\r\n\r\n @observable private _tab: CourseItemTab;\r\n @computed get tab() { return this._tab; }\r\n set tab(value: CourseItemTab) {\r\n switch (value) {\r\n case 'theory': {\r\n if (this.theoryVisible) {\r\n this._tab = 'theory';\r\n return;\r\n }\r\n break;\r\n }\r\n case 'tests': {\r\n if (this.testsVisible) {\r\n this._tab = 'tests';\r\n return;\r\n }\r\n break;\r\n }\r\n case 'tasks': {\r\n if (this.tasksVisible) {\r\n this._tab = 'tasks';\r\n return;\r\n }\r\n break;\r\n }\r\n case 'rating': {\r\n if (this.allowComments || this.ratingEnabled) {\r\n this._tab = 'rating';\r\n return;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n @computed get defaultTab(): CourseItemTab {\r\n if (this.progress == null) return 'theory';\r\n if (this.theoryVisible && !this.progress.theoryCompleted) return 'theory';\r\n else if (this.testsVisible && !this.progress.testsCompleted) return 'tests'\r\n else if (this.tasksVisible && !this.progress.tasksCompleted) return 'tasks';\r\n return 'theory';\r\n }\r\n\r\n @computed get canSelect() { return this.courseItemAvailability.result; }\r\n\r\n @computed get previousRequiredItem(): StudentCourseItem | null {\r\n if (this.previousAccessibleItem == null)\r\n return null;\r\n if (this.previousAccessibleItem.canSkip)\r\n return this.previousAccessibleItem.previousRequiredItem;\r\n return this.previousAccessibleItem;\r\n }\r\n\r\n @computed get previousAccessibleItem(): StudentCourseItem | null {\r\n if (this.previousItem == null)\r\n return null;\r\n if (!this.previousItem.hasPlanAccess)\r\n return this.previousItem.previousAccessibleItem;\r\n return this.previousItem;\r\n }\r\n\r\n /**\r\n * returns the next item regarding to plan access (skip unavalaible items)\r\n */\r\n @computed get nextAccessibleItem(): StudentCourseItem | null {\r\n if (this.nextItem == null)\r\n return null;\r\n if (!this.nextItem.hasPlanAccess)\r\n return this.nextItem.nextAccessibleItem;\r\n return this.nextItem;\r\n }\r\n\r\n @computed get hasAccessibleItems(): boolean {\r\n if (this.type != CourseItemType.Section || this.children.length == 0)\r\n return false;\r\n for (const child of this.children) {\r\n // skip unavaialble steps & sections (we can skip section due to strict inherited access to all children)\r\n if (!child.hasPlanAccess) continue;\r\n // no plan limit => if step available OR section has available step inside (recursion) return true\r\n if (child.type == CourseItemType.Step || child.hasAccessibleItems)\r\n return true;\r\n }\r\n // no avaialble steps\r\n return false;\r\n }\r\n\r\n /**\r\n * returns all children (sections and steps) that have plan access\r\n */\r\n @computed get accessibleChildren(): StudentCourseItem[] {\r\n return this.children.filter(i => i.hasPlanAccess);\r\n }\r\n\r\n hasAncestor(item: StudentCourseItem) {\r\n let parent = this.parent;\r\n while (parent) {\r\n if (parent == item) return true;\r\n parent = parent.parent;\r\n }\r\n return false;\r\n }\r\n\r\n @computed get courseItemAvailability(): StudentCourseItemAvailability {\r\n // if the step has progress then it's available by default\r\n if (this.progress != null && this.progress.status == 'opened')\r\n return { result: true };\r\n if (!this.hasPlanAccess)\r\n return { result: false, requiredPlans: this.requiredPlans }\r\n\r\n if (!this.availabilityRelativeToTimeDelay.result)\r\n return this.availabilityRelativeToTimeDelay;\r\n\r\n const parentAvailability = this.parentAvailability;\r\n // check parent section availability first\r\n if (!parentAvailability.result) {\r\n return { ...parentAvailability, isSection: true };\r\n }\r\n if (!this.availabilityRelativeToOther.result)\r\n return this.availabilityRelativeToOther;\r\n return { result: true };\r\n }\r\n\r\n @computed private get parentAvailability(): StudentCourseItemAvailability {\r\n if (this.parent != null)\r\n return this.parent.courseItemAvailability;\r\n // if it doesn't exist\r\n return { result: true };\r\n }\r\n\r\n @computed private get availabilityRelativeToTimeDelay(): StudentCourseItemAvailability {\r\n\r\n if (this.disableTimeLimits) return { result: true };\r\n\r\n const checkFlowTimeDelay = this.flowTimeDelayActive && this.studentCourse.isInFlow;\r\n if (checkFlowTimeDelay) {\r\n switch (this.flowTimeDelayCondition) {\r\n case FlowTimeDelayCondition.CourseStart: {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.beginDate!),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case FlowTimeDelayCondition.FlowStart: {\r\n if (this.studentCourse.flowBeginDate == null)\r\n break;\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.flowBeginDate),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case FlowTimeDelayCondition.PreviousStep: {\r\n if (!this.previousAccessibleItem)\r\n break;\r\n if (!this.previousAccessibleItem.precompleted)\r\n return { result: false, needToCompletePrevStep: true };\r\n\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.previousAccessibleItem.progress.precompleteDate!),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case FlowTimeDelayCondition.PreviousSectionStarted:\r\n case FlowTimeDelayCondition.PreviousSectionCompleted: {\r\n const prevSection = this.previousSection;\r\n if (prevSection && prevSection.hasAccessibleItems) {\r\n const targetDate = this.flowTimeDelayCondition == FlowTimeDelayCondition.PreviousSectionStarted\r\n ? prevSection.beginDate\r\n : prevSection.completeDate;\r\n if (targetDate) {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(targetDate),\r\n this.flowTimeDelayValue,\r\n this.flowWaitUntilTimeActive,\r\n this.flowWaitUntilTime,\r\n this.flowWaitUntilTimeDaysOfWeekActive,\r\n this.flowWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n } else {\r\n return {\r\n result: false,\r\n willBeAvailableIf: {\r\n in: this.flowTimeDelayValue,\r\n item: prevSection,\r\n condition: this.flowTimeDelayCondition == FlowTimeDelayCondition.PreviousSectionStarted ? 'afterStart' : 'afterComplete',\r\n }\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (this.regularTimeDelayActive) {\r\n switch (this.regularTimeDelayCondition) {\r\n case RegularTimeDelayCondition.AccessStart: {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.accessBeginDate),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case RegularTimeDelayCondition.CourseStart: {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.studentCourse.beginDate),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case RegularTimeDelayCondition.PreviousStep: {\r\n if (!this.previousAccessibleItem)\r\n break;\r\n if (!this.previousAccessibleItem.precompleted)\r\n return { result: false, needToCompletePrevStep: true };\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(this.previousAccessibleItem.progress.precompleteDate!),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n case RegularTimeDelayCondition.PreviousSectionStarted:\r\n case RegularTimeDelayCondition.PreviousSectionCompleted: {\r\n const prevSection = this.previousSection;\r\n if (prevSection && prevSection.hasAccessibleItems) {\r\n const targetDate = this.regularTimeDelayCondition == RegularTimeDelayCondition.PreviousSectionStarted\r\n ? prevSection.beginDate\r\n : prevSection.completeDate;\r\n if (targetDate) {\r\n const now = moment();\r\n const delay = this.calculateDelay(\r\n moment(targetDate),\r\n this.regularTimeDelayValue,\r\n this.regularWaitUntilTimeActive,\r\n this.regularWaitUntilTime,\r\n this.regularWaitUntilTimeDaysOfWeekActive,\r\n this.regularWaitUntilDaysOfWeek\r\n );\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n } else {\r\n return {\r\n result: false,\r\n willBeAvailableIf: {\r\n in: this.regularTimeDelayValue,\r\n item: prevSection,\r\n condition: this.regularTimeDelayCondition == RegularTimeDelayCondition.PreviousSectionStarted ? 'afterStart' : 'afterComplete',\r\n }\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n const useDateDelay = this.dateDelayActive && this.dateDelay != null;\r\n if (useDateDelay) {\r\n const available = moment().isAfter(this.dateDelay);\r\n if (!available)\r\n return { result: false, willBeAvailableOn: this.dateDelay };\r\n }\r\n\r\n return { result: true };\r\n }\r\n\r\n @computed private get availabilityRelativeToOther(): StudentCourseItemAvailability {\r\n switch (this.availability) {\r\n case CourseItemAvailability.RegardlessOfPreviousSteps: {\r\n // if there is any previous item which is NOT completed\r\n // AND blocks the course until all it's tasks are finished\r\n let prevRequiredItem = this.previousRequiredItem;\r\n while (prevRequiredItem) {\r\n if (prevRequiredItem.blockCourseUntilTasksApproved == true) {\r\n if (prevRequiredItem.completed == false) {\r\n // if the next item has progress, then the previous item doesn't block the others\r\n if (prevRequiredItem.nextAccessibleItem?.progress != null) break;\r\n return { result: false, blockingCourseItem: prevRequiredItem };\r\n }\r\n break;\r\n }\r\n prevRequiredItem = prevRequiredItem.previousRequiredItem;\r\n }\r\n break;\r\n }\r\n case CourseItemAvailability.AllPreviousStepsCompleted: {\r\n let previousItem = this.previousRequiredItem;\r\n while (previousItem) {\r\n if (previousItem.blockCourseUntilTasksApproved == true && previousItem.completed == false) {\r\n return { result: false, blockingCourseItem: previousItem };\r\n }\r\n if (previousItem.blockCourseUntilTasksApproved == false && previousItem.precompleted == false) {\r\n return { result: false, blockingCourseItem: previousItem };\r\n }\r\n previousItem = previousItem.previousRequiredItem;\r\n }\r\n break;\r\n }\r\n case CourseItemAvailability.PreviousStepCompleted: {\r\n if (!this.previousRequiredItem)\r\n break;\r\n if (this.previousRequiredItem.blockCourseUntilTasksApproved == true && this.previousRequiredItem.completed == false) {\r\n return { result: false, blockingCourseItem: this.previousRequiredItem };\r\n }\r\n if (this.previousRequiredItem.blockCourseUntilTasksApproved == false && this.previousRequiredItem.precompleted == false) {\r\n return { result: false, blockingCourseItem: this.previousRequiredItem };\r\n }\r\n break;\r\n }\r\n }\r\n return { result: true };\r\n }\r\n\r\n @computed get hasPlanAccess() {\r\n return this.hasAccessGrantedByAdmin || this.requiredPlans?.length == 0;\r\n }\r\n\r\n @computed get hasAccessGrantedByAdmin(): boolean {\r\n if (this.type == CourseItemType.Step) {\r\n return this.progress?.status == 'opened';\r\n } else {\r\n return this.children.some(i => i.hasAccessGrantedByAdmin);\r\n }\r\n }\r\n\r\n @computed get canSkip() {\r\n return this.isOptional == true || !this.hasPlanAccess;\r\n }\r\n\r\n static fromJson(json: any): StudentCourseItem {\r\n const studentCourseItem = new StudentCourseItem({\r\n ...json,\r\n plans: json.plans ? json.plans.map((x: any) => CoursePlan.fromJson(x.coursePlan)) : undefined,\r\n parent: json.parentItem ? StudentCourseItem.fromJson(json.parentItem) : undefined,\r\n children: json.children ? json.children.map((x: any) => StudentCourseItem.fromJson(x)) : undefined,\r\n course: json.course ? Course.fromJson(json.course) : undefined,\r\n files: json.files ? json.files.map((x: any) => AccelFile.fromJson(x)) : [],\r\n progress: json.progress ? StudentCourseItemProgress.fromJson(json.progress) : undefined,\r\n tests: [],\r\n tasks: [],\r\n dateDelay: json.dateDelay ? moment(json.dateDelay) : undefined,\r\n regularWaitUntilTime: json.regularWaitUntilTime ? moment(json.regularWaitUntilTime) : undefined,\r\n flowWaitUntilTime: json.flowWaitUntilTime ? moment(json.flowWaitUntilTime) : undefined,\r\n });\r\n if (json.tasks)\r\n studentCourseItem.tasks = json.tasks.map((x: any) => StudentCourseItemTask.fromJson(x, studentCourseItem));\r\n if (json.tests)\r\n studentCourseItem.tests = json.tests.map((x: any) => StudentCourseItemTest.fromJson(x, studentCourseItem));\r\n return studentCourseItem;\r\n }\r\n\r\n @action\r\n update(course: Partial) {\r\n super.update(course);\r\n }\r\n\r\n @computed private get regularTimeDelayValue() {\r\n if (isNil(this.regularTimeDelay))\r\n return TimeSpan.zero;\r\n\r\n return TimeSpan.fromTimeMeasure(this.regularTimeDelay, this.regularTimeDelayMeasureType ?? 'days');\r\n }\r\n\r\n @computed private get flowTimeDelayValue() {\r\n if (isNil(this.flowTimeDelay))\r\n return TimeSpan.zero;\r\n\r\n return TimeSpan.fromTimeMeasure(this.flowTimeDelay, this.flowTimeDelayMeasureType ?? 'days');\r\n }\r\n\r\n private calculateDelay(\r\n baseDate: moment.Moment,\r\n timeDelayValue: TimeSpan,\r\n timeActive: boolean,\r\n waitUntilTime: moment.Moment,\r\n daysOfWeekActive: boolean,\r\n waitUntilDaysOfWeek: null | DayOfWeek[],\r\n ): moment.Moment {\r\n // converting baseDate to school timezone\r\n let delay = moment(baseDate).utc().tz(this.schoolTimezone.id);\r\n\r\n // add delay due to wait conditions (hours, days, weeks, etc.)\r\n delay.add(timeDelayValue, 'milliseconds');\r\n\r\n if (timeActive) {\r\n // converting to school timezone and extract hours and minutes from target time\r\n const targetTime = moment(waitUntilTime).utc().tz(this.schoolTimezone.id);\r\n const hours = targetTime.hours();\r\n const minutes = targetTime.minutes();\r\n\r\n // adding hours and minutes from target time to delay\r\n let adjustedDelay = delay.clone().hours(hours).minutes(minutes).seconds(0).milliseconds(0);\r\n\r\n // checking if date is before target time and skipping to the next day\r\n if (adjustedDelay.isBefore(delay)) {\r\n adjustedDelay.add(1, 'day');\r\n }\r\n\r\n delay = adjustedDelay;\r\n }\r\n\r\n if (daysOfWeekActive && (waitUntilDaysOfWeek && waitUntilDaysOfWeek.length > 0)) {\r\n const targetDays = waitUntilDaysOfWeek.map(day => dayOfWeekMap[day]);\r\n\r\n // looking for the first matching day of daysOfWeek\r\n while (!targetDays.includes(delay.day()))\r\n delay.add(1, 'day');\r\n\r\n }\r\n\r\n // returning to local timezone after all calculations to match the current time (fixing the issue with day change in case of timezone difference)\r\n const currentTz = moment.tz.guess();\r\n return delay.tz(currentTz);\r\n }\r\n}\r\n\r\n","import { BaseFilter } from '@axl/accel-framework/models';\r\nimport { StudentCourseItem } from '..';\r\nimport { SortingDirection } from '@axl/accel-framework/enums';\r\n\r\nexport default class StudentCourseItemFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n this.sortName = 'position';\r\n this.sortType = SortingDirection.asc;\r\n if (filter) this.update(filter);\r\n }\r\n studentCourseId: string;\r\n /**\r\n * Item we'd like to select\r\n * In addition to root branch, request the item section branch\r\n */\r\n courseItemId: string;\r\n /**\r\n * Request only the section items\r\n */\r\n sectionId: string;\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}","import { action, observable } from 'mobx';\r\nimport { AccelFile, Entity } from '@axl/accel-framework/models';\r\nimport { StudentCourseItem } from 'models';\r\n\r\n\r\nexport declare type CourseItemTestCountingMethod = 'percent' | 'score';\r\n\r\nexport default class StudentCourseItemTest extends Entity {\r\n constructor(test?: Partial) {\r\n super(test);\r\n if (test) this.update(test);\r\n }\r\n\r\n @observable title: string;\r\n @observable description: string;\r\n @observable position: number;\r\n @observable minPercentageCompletion: number;\r\n @observable minScoreCompletion: number;\r\n @observable questions: any[];\r\n @observable files: AccelFile[];\r\n @observable countingMethod: CourseItemTestCountingMethod;\r\n @observable shuffle: boolean;\r\n @observable isCompleted: boolean;\r\n @observable parent: StudentCourseItem;\r\n\r\n @action\r\n update(test: Partial) {\r\n super.update(test);\r\n }\r\n\r\n static fromJson(json: any, parent?: StudentCourseItem): StudentCourseItemTest {\r\n return new StudentCourseItemTest({\r\n ...json,\r\n files: json.files ? json.files.map(AccelFile.fromJson) : undefined,\r\n parent\r\n });\r\n }\r\n}","import { AccelFile, CourseItemTask, CourseItemTaskAnswer, CourseItemTaskAnswerStatus, CourseItemTaskField } from '@axl/accel-framework/models';\r\nimport { observable, computed, action } from 'mobx';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport default class StudentCourseItemTask extends CourseItemTask {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable answer: CourseItemTaskAnswer;\r\n @observable parent: StudentCourseItem;\r\n\r\n @computed get status(): CourseItemTaskAnswerStatus {\r\n return this.answer?.status || CourseItemTaskAnswerStatus.Default;\r\n }\r\n\r\n @computed get isCompleted() {\r\n return this.status === CourseItemTaskAnswerStatus.Correct;\r\n }\r\n\r\n static fromJson(json: any, parent?: StudentCourseItem): StudentCourseItemTask {\r\n return new StudentCourseItemTask({\r\n ...json,\r\n files: json.files ? json.files.map(AccelFile.fromJson) : undefined,\r\n answer: json.answer ? CourseItemTaskAnswer.fromJson(json.answer) : undefined,\r\n fields: json.fields ? json.fields.map(CourseItemTaskField.fromJson) : undefined,\r\n parent\r\n });\r\n }\r\n\r\n @action\r\n update(task: Partial) {\r\n super.update(task);\r\n }\r\n}\r\n","import { observable, action } from 'mobx';\r\nimport { Entity } from '@axl/accel-framework/models';\r\n\r\nexport default class SchoolLibrary extends Entity {\r\n constructor(library?: Partial) {\r\n super(library);\r\n }\r\n\r\n @observable title: string;\r\n @observable shortDescription: string;\r\n @observable freeAccess: boolean;\r\n @observable primaryImageCloudKey: string;\r\n @observable studentAccessDate?: Date;\r\n @observable flowBeginDate?: Date;\r\n @observable studentHasAccess: boolean;\r\n @observable categories: string[];\r\n\r\n static fromJson(json: any): SchoolLibrary {\r\n return new SchoolLibrary({\r\n ...json,\r\n studentAccessDate: json.studentAccessDate ? new Date(json.studentAccessDate) : undefined,\r\n flowBeginDate: json.flowBeginDate ? new Date(json.flowBeginDate) : undefined,\r\n });\r\n }\r\n\r\n @action\r\n update(library: Partial) {\r\n super.update(library);\r\n }\r\n}\r\n\r\n","import { Entity, SchoolContentItemProgressRating } from \"@axl/accel-framework/models\";\r\nimport { action, observable } from \"mobx\";\r\nimport moment from \"moment\";\r\n\r\nexport default class SchoolLibraryItemProgress extends Entity {\r\n constructor(progress?: Partial) {\r\n super(progress);\r\n if (progress) this.update(progress);\r\n }\r\n\r\n @observable beginDate: moment.Moment;\r\n @observable rating: SchoolContentItemProgressRating;\r\n\r\n static fromJson(json: any): SchoolLibraryItemProgress {\r\n return new SchoolLibraryItemProgress({\r\n ...json,\r\n beginDate: json.createdDate ? moment(json.createdDate) : undefined,\r\n rating: json.rating ? SchoolContentItemProgressRating.fromJson(json.rating) : null,\r\n });\r\n }\r\n\r\n @action update(progress: Partial) {\r\n super.update(progress);\r\n }\r\n}\r\n","import { observable, action, computed } from 'mobx';\r\nimport { LibraryItem } from '@axl/accel-framework/models';\r\nimport moment from 'moment';\r\nimport { LibraryItemType } from '@axl/accel-framework/models/library/item/library-item';\r\nimport { isNil } from 'lodash';\r\nimport { TimeSpan, isEmpty } from '@axl/accel-framework/utils';\r\nimport SchoolLibraryItemProgress from '../school-library-item-progress/school-library-item-progress';\r\n\r\nexport declare type LibraryItemTab = 'article' | 'rating';\r\n\r\nexport type SchoolLibraryItemAvailability = {\r\n result: boolean,\r\n isSection?: boolean,\r\n willBeAvailableOn?: moment.Moment,\r\n}\r\n\r\nexport default class SchoolLibraryItem extends LibraryItem {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable parentItem: SchoolLibraryItem | null;\r\n @observable children: SchoolLibraryItem[] = [];\r\n @observable section: SchoolLibraryItem | null;\r\n @observable previousItem: SchoolLibraryItem | null;\r\n @observable nextItem: SchoolLibraryItem | null;\r\n @observable studentHasAccess: boolean;\r\n @observable flowBeginDate?: Date | null;\r\n @observable progress: SchoolLibraryItemProgress;\r\n\r\n @computed get ratingVisible(): boolean {\r\n return this.allowComments || this.ratingEnabled;\r\n }\r\n\r\n @observable private _tab: LibraryItemTab;\r\n @computed get tab() { return this._tab; }\r\n set tab(value: LibraryItemTab) {\r\n switch (value) {\r\n case 'article': {\r\n this._tab = 'article';\r\n return;\r\n }\r\n case 'rating': {\r\n if (this.allowComments || this.ratingEnabled) {\r\n this._tab = 'rating';\r\n return;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n @computed get completed() {\r\n return !isEmpty(this.progress);\r\n }\r\n\r\n @computed get fullPosition() {\r\n let position = '';\r\n let section = this.section;\r\n while (section != null) {\r\n position += `${section.position}.`;\r\n section = section.section;\r\n }\r\n position += this.position;\r\n return position;\r\n }\r\n\r\n @computed get lastChild() {\r\n return this.getLastNestedStep();\r\n }\r\n\r\n getLastNestedStep(): SchoolLibraryItem | null {\r\n if (this.type == LibraryItemType.Article || this.children.length == 0)\r\n return null;\r\n\r\n for (const child of this.children.slice().reverse()) {\r\n if (child.type == LibraryItemType.Article)\r\n return child;\r\n\r\n const step = child.getLastNestedStep();\r\n if (step != null)\r\n return step;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get firstChild() {\r\n return this.getFirstNestedStep();\r\n }\r\n\r\n getFirstNestedStep(): SchoolLibraryItem | null {\r\n if (this.type == LibraryItemType.Article || this.children.length == 0)\r\n return null;\r\n\r\n const steps = this.children.filter(i => i.type == LibraryItemType.Article);\r\n if (steps.length > 0)\r\n return steps[0];\r\n\r\n for (const child of this.children) {\r\n const step = child.getFirstNestedStep();\r\n if (step != null)\r\n return step;\r\n }\r\n return null;\r\n }\r\n\r\n @computed private get parentAvailability(): SchoolLibraryItemAvailability {\r\n if (this.section != null)\r\n return this.section.availability;\r\n return { result: true };\r\n }\r\n\r\n @computed get canSelect() { return this.availability.result; }\r\n @computed get availability(): SchoolLibraryItemAvailability {\r\n const parentAvailability = this.parentAvailability;\r\n if (!parentAvailability.result)\r\n return { ...parentAvailability, isSection: true };\r\n if (!this.availabilityRelativeToTimeDelay.result)\r\n return this.availabilityRelativeToTimeDelay;\r\n if (!this.studentHasAccess)\r\n return { result: false };\r\n return { result: true };\r\n }\r\n\r\n @computed private get availabilityRelativeToTimeDelay(): SchoolLibraryItemAvailability {\r\n if (this.flowTimeDelayActive) {\r\n switch (this.flowTimeDelayCondition) {\r\n case 'flowStart': {\r\n if (this.flowBeginDate == null)\r\n break;\r\n const now = moment();\r\n const delay = moment(this.flowBeginDate)\r\n .add(this.flowTimeDelayValue.milliseconds, 'milliseconds');\r\n if (now <= delay)\r\n return { result: false, willBeAvailableOn: delay };\r\n break;\r\n }\r\n }\r\n }\r\n return { result: true };\r\n }\r\n\r\n static fromJson(json: any): SchoolLibraryItem {\r\n const base = LibraryItem.fromJson(json);\r\n const item = new SchoolLibraryItem({\r\n ...base,\r\n studentHasAccess: json.studentHasAccess,\r\n parentItem: json.parentItem ? SchoolLibraryItem.fromJson(json.parentItem) : null,\r\n progress: json.progress ? SchoolLibraryItemProgress.fromJson(json.progress) : undefined,\r\n });\r\n return item;\r\n }\r\n\r\n @action\r\n update(schoolLibraryItem: Partial) {\r\n super.update(schoolLibraryItem);\r\n }\r\n\r\n @computed private get flowTimeDelayValue() {\r\n if (isNil(this.flowTimeDelay))\r\n return TimeSpan.zero;\r\n\r\n return TimeSpan.fromTimeMeasure(this.flowTimeDelay, this.flowTimeDelayMeasureType ?? 'days');\r\n }\r\n}\r\n\r\n","import { BaseFilter } from '@axl/accel-framework/models';\r\nimport { SortingDirection } from '@axl/accel-framework/enums';\r\nimport SchoolLibraryItem from './school-library-item';\r\n\r\nexport default class SchoolLibraryItemFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n this.sortName = 'position';\r\n this.sortType = SortingDirection.asc;\r\n if (filter) this.update(filter);\r\n }\r\n libraryId: string;\r\n /**\r\n * Item we'd like to select\r\n * In addition to root branch, request the item section branch\r\n */\r\n libraryItemId: string;\r\n /**\r\n * Request only the section items\r\n */\r\n sectionId: string;\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}","import { BaseFilter, Entity, SchoolContentItemType, SchoolContentSectionType } from '@axl/accel-framework/models';\r\nimport { observable, action, computed } from 'mobx';\r\nimport SchoolCourse from '../school-course/school-course';\r\nimport SchoolLibrary from '../school-library/school-library';\r\nimport { SchoolCourseType } from '../school-course/school-course-filter';\r\n\r\n\r\nexport class SchoolContentItem extends Entity {\r\n constructor(item?: Partial) {\r\n super(item);\r\n if (item) this.update(item);\r\n }\r\n\r\n @observable title: string;\r\n @observable description: string;\r\n @observable coverCloudKey: string;\r\n\r\n @observable createdDate: Date;\r\n @observable updatedDate: Date;\r\n @observable position: number;\r\n @observable parentId: string | null;\r\n @observable parent: SchoolContentItem | null;\r\n @observable course?: SchoolCourse;\r\n @observable library?: SchoolLibrary;\r\n @observable type: SchoolContentItemType;\r\n @observable sectionType: SchoolContentSectionType;\r\n @observable children: SchoolContentItem[];\r\n\r\n @computed get progress(): number {\r\n if(this.sectionType == SchoolContentSectionType.Library) return 0;\r\n if (this.type == SchoolContentItemType.Item)\r\n return this.course?.studentCourse?.progress ?? 0;\r\n\r\n let progress = 0;\r\n this.children.forEach(x => progress += x.progress);\r\n progress /= this.children.length;\r\n return progress;\r\n }\r\n\r\n @computed get itemCount() {\r\n if (this.type == SchoolContentItemType.Item) return 1;\r\n let count = 0;\r\n for (const child of this.children) {\r\n count += child.itemCount;\r\n }\r\n return count;\r\n }\r\n\r\n static fromJson(json: any): SchoolContentItem {\r\n const item = new SchoolContentItem({\r\n id: json.id,\r\n title: json.title,\r\n description: json.description,\r\n type: json.type,\r\n sectionType: json.sectionType,\r\n position: json.position,\r\n createdDate: json.createdDate ? new Date(json.createdDate) : undefined,\r\n updatedDate: json.updatedDate ? new Date(json.updatedDate) : undefined,\r\n coverCloudKey: json.coverCloudKey,\r\n parentId: json.parentId,\r\n parent: json.parent ? SchoolContentItem.fromJson(json.parent) : json.parent === null ? null : undefined,\r\n course: json.course ? SchoolCourse.fromJson(json.course) : undefined,\r\n library: json.library ? SchoolLibrary.fromJson(json.library) : undefined,\r\n children: json.children ? json.children.map(SchoolContentItem.fromJson) : []\r\n });\r\n item.children.forEach(x => x.update({ parent: item }));\r\n return item;\r\n }\r\n\r\n @action\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}\r\n\r\nexport class SchoolContentItemFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n if (filter) this.update(filter);\r\n }\r\n\r\n courseType: SchoolCourseType;\r\n onlyAvailable: boolean;\r\n sectionType: SchoolContentSectionType;\r\n \r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport StudentCourseFilter from 'models/student-course/student-course-filter';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport class FetchStudentCoursesRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n state,\r\n progress,\r\n course{\r\n id,\r\n name,\r\n shortDescription,\r\n primaryImage{\r\n file{\r\n id,\r\n cloudKey\r\n }\r\n }\r\n }\r\n }`;\r\n public url: string = '/student-course';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: StudentCourseFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCoursesResponse extends ApiResponse {\r\n public filter: StudentCourseFilter;\r\n public items: StudentCourse[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new StudentCourseFilter(this.body.filter);\r\n this.items = this.body.items.map(StudentCourse.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport class FetchStudentCourseRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n beginDate,\r\n endDate,\r\n state,\r\n flowBeginDate,\r\n accessBeginDate,\r\n accessEndDate,\r\n isSubscription,\r\n course{\r\n id,\r\n name,\r\n dontAskFeedback\r\n },\r\n currentCourseItem{\r\n id\r\n }, \r\n feedback,\r\n progress,\r\n student{\r\n id\r\n }\r\n }`;\r\n public url: string = `/student-course/${this.courseItemId}`;\r\n\r\n constructor(public courseItemId: string, fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseResponse extends ApiResponse {\r\n public studentCourse: StudentCourse;\r\n public hasItemAccess: boolean;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourse = StudentCourse.fromJson(this.body.studentCourse);\r\n this.hasItemAccess = this.body.hasItemAccess;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class StartCourseRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public body = {\r\n courseId: this.courseId\r\n }\r\n public url: string = `/student-course`;\r\n\r\n constructor(public courseId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class StartCourseResponse extends ApiResponse {\r\n public studentCourseId: string;\r\n public currentCourseItemId: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourseId = this.body.studentCourseId;\r\n this.currentCourseItemId = this.body.currentCourseItemId;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class SendFeedbackRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n text: this.text\r\n }\r\n public url: string = `/student-course/send-feedback`;\r\n\r\n constructor(public studentCourseId: string, public text: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SendFeedbackResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStudentCoursesRequest, FetchStudentCoursesResponse } from './types/fetch-student-courses';\r\nimport { FetchStudentCourseRequest, FetchStudentCourseResponse } from './types/fetch-student-course';\r\nimport { StartCourseRequest, StartCourseResponse } from './types/start-course';\r\nimport { SendFeedbackRequest, SendFeedbackResponse } from './types/send-feedback';\r\n\r\nexport default class StudentCourseApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchStudentCoursesRequest) {\r\n return await this.api.execute(request, FetchStudentCoursesResponse);\r\n }\r\n\r\n public async fetchItem(request: FetchStudentCourseRequest) {\r\n return await this.api.execute(request, FetchStudentCourseResponse);\r\n }\r\n\r\n public async startCourse(request: StartCourseRequest) {\r\n return await this.api.execute(request, StartCourseResponse);\r\n }\r\n\r\n public async sendFeedback(request: SendFeedbackRequest) {\r\n return await this.api.execute(request, SendFeedbackResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItem, SchoolContentItemFilter } from 'models';\r\n\r\nexport class FetchSchoolCoursesRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/school-course`;\r\n public body = {\r\n ...this.filter\r\n }\r\n\r\n constructor(public filter: SchoolContentItemFilter, fields?: string) {\r\n super();\r\n if (fields)\r\n this.fields = fields;\r\n }\r\n}\r\n\r\nexport class FetchSchoolCoursesResponse extends ApiResponse {\r\n public items: SchoolContentItem[];\r\n public filter: SchoolContentItemFilter;\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(SchoolContentItem.fromJson);\r\n this.filter = new SchoolContentItemFilter(this.body.filter);\r\n }\r\n}\r\n","import Api from 'api';\r\nimport { FetchSchoolCoursesRequest, FetchSchoolCoursesResponse } from './types/fetch';\r\n\r\nexport default class SchoolCourseApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchSchoolCoursesRequest) {\r\n return await this.api.execute(request, FetchSchoolCoursesResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItemFilter, StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/student-course-item';\r\n public body = {\r\n ...this.filter,\r\n }\r\n public fields = `{\r\n id,\r\n parentItemId,\r\n title,\r\n type,\r\n position,\r\n availability,\r\n disableTimeLimits,\r\n regularTimeDelayActive,\r\n regularTimeDelay,\r\n regularTimeDelayCondition,\r\n regularTimeDelayMeasureType,\r\n regularWaitUntilTimeActive,\r\n regularWaitUntilTime,\r\n regularWaitUntilTimeDaysOfWeekActive,\r\n regularWaitUntilDaysOfWeek,\r\n flowTimeDelayActive,\r\n flowTimeDelay,\r\n flowTimeDelayCondition,\r\n flowTimeDelayMeasureType,\r\n flowWaitUntilTimeActive,\r\n flowWaitUntilTime,\r\n flowWaitUntilTimeDaysOfWeekActive,\r\n flowWaitUntilDaysOfWeek,\r\n dateDelayActive,\r\n dateDelay,\r\n preventCopingAndSelectingText,\r\n blockCourseUntilTasksApproved,\r\n isOptional,\r\n allowComments,\r\n showComments,\r\n ratingEnabled,\r\n ratingRequired,\r\n ratingCommentRequired,\r\n theoryVisible,\r\n testsVisible,\r\n tasksVisible,\r\n requiredPlans,\r\n progress{\r\n id,\r\n beginDate,\r\n completeDate,\r\n precompleteDate,\r\n status,\r\n theoryStatus,\r\n testStatus,\r\n taskStatus,\r\n numberUncheckedTasks,\r\n numberCorrectTasks,\r\n numberIncorrectTasks,\r\n },\r\n tasks{\r\n id,\r\n }\r\n }`;\r\n\r\n\r\n constructor(public filter?: StudentCourseItemFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemsResponse extends ApiResponse {\r\n public filter: StudentCourseItemFilter;\r\n public items: StudentCourseItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new StudentCourseItemFilter(this.body.filter);\r\n this.items = this.body.items.map(StudentCourseItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n \r\n public url: string = `/student-course-item/${this.studentCourseId}/${this.courseItemId}`;\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemResponse extends ApiResponse {\r\n public studentCourseItem: StudentCourseItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourseItem = StudentCourseItem.fromJson(this.body);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class CompleteCourseItemTheoryRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/complete-theory`;\r\n public body = {\r\n studentCourseItemProgressId: this.studentCourseItemProgressId\r\n }\r\n\r\n constructor(public studentCourseItemProgressId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CompleteCourseItemTheoryResponse extends ApiResponse {\r\n progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.progress = StudentCourseProgress.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { CourseItemTaskAnswerStatus } from '@axl/accel-framework/models';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\ntype CourseItemTaskFieldModel = {\r\n id: string;\r\n value: any;\r\n}\r\n\r\nexport type CreateTaskAnswerRequestModel = {\r\n courseItemTaskId: string,\r\n studentCourseItemProgressId: string,\r\n text: string,\r\n files: string[],\r\n fields: CourseItemTaskFieldModel[]\r\n}\r\nexport class CreateTaskAnswerRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-item/task-answer`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateTaskAnswerRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTaskAnswerResponse extends ApiResponse {\r\n id: string;\r\n status: CourseItemTaskAnswerStatus;\r\n progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body.answerId;\r\n this.status = this.body.answerStatus;\r\n this.progress = StudentCourseProgress.fromJson(this.body.progress);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\nimport { CourseItemTaskAnswerStatus } from '@axl/accel-framework/models';\r\n\r\ntype CourseItemTaskFieldModel = {\r\n id: string;\r\n value: any;\r\n}\r\n\r\nexport type SaveTaskAnswerRequestModel = {\r\n id: string,\r\n text: string,\r\n files: string[],\r\n fields: CourseItemTaskFieldModel[]\r\n}\r\nexport class SaveTaskAnswerRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/task-answer`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: SaveTaskAnswerRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveTaskAnswerResponse extends ApiResponse {\r\n progress: StudentCourseProgress;\r\n status: CourseItemTaskAnswerStatus;\r\n\r\n constructor(response: any) {\r\n super(response);\r\n this.status = this.body.answerStatus;\r\n this.progress = StudentCourseProgress.fromJson(this.body.progress);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type CreateTaskAnswerCommentRequestModel = {\r\n answerId: string,\r\n comment: string,\r\n files: string[]\r\n}\r\nexport class CreateTaskAnswerCommentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-item/task-answer/comment`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateTaskAnswerCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTaskAnswerCommentResponse extends ApiResponse {\r\n id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class ResetTaskAnswerStatusRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/task-answer/reset-status`;\r\n public body = {\r\n answerId: this.answerId,\r\n }\r\n\r\n constructor(public answerId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ResetTaskAnswerStatusResponse extends ApiResponse {\r\n progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.progress = StudentCourseProgress.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteTaskAnswerCommentRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/student-course-item/task-answer/comment/${this.commentId}`;\r\n\r\n constructor(public commentId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteTaskAnswerCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type SaveTaskAnswerCommentRequestModel = {\r\n commentId: string,\r\n comment: string,\r\n files: string[]\r\n}\r\nexport class SaveTaskAnswerCommentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/student-course-item/task-answer/comment`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: SaveTaskAnswerCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveTaskAnswerCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { CourseItemTaskAnswerComment, CourseItemTaskAnswerCommentFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchTaskAnswerCommentsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n \r\n public url: string = `/student-course-item/task-answer/comment`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: CourseItemTaskAnswerCommentFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTaskAnswerCommentsResponse extends ApiResponse {\r\n public items: CourseItemTaskAnswerComment[];\r\n public filter: CourseItemTaskAnswerCommentFilter;\r\n\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new CourseItemTaskAnswerCommentFilter(this.body.filter);\r\n this.items = this.body.items.map(CourseItemTaskAnswerComment.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStudentCourseItemsRequest, FetchStudentCourseItemsResponse } from './types/fetch-student-course-items';\r\nimport { FetchStudentCourseItemRequest, FetchStudentCourseItemResponse } from './types/fetch-student-course-item';\r\nimport { CompleteCourseItemTheoryRequest, CompleteCourseItemTheoryResponse } from './types/complete-course-item-theory';\r\nimport { CreateTaskAnswerRequest, CreateTaskAnswerResponse } from './types/create-task-answer';\r\nimport { SaveTaskAnswerRequest, SaveTaskAnswerResponse } from './types/save-task-answer';\r\nimport { CreateTaskAnswerCommentRequest, CreateTaskAnswerCommentResponse } from './types/create-task-answer-comment';\r\nimport { ResetTaskAnswerStatusRequest, ResetTaskAnswerStatusResponse } from './types/reset-task-answer-status';\r\nimport { DeleteTaskAnswerCommentRequest, DeleteTaskAnswerCommentResponse } from './types/delete-task-answer-comment';\r\nimport { SaveTaskAnswerCommentRequest, SaveTaskAnswerCommentResponse } from './types/save-task-answer-comment';\r\nimport { FetchTaskAnswerCommentsRequest, FetchTaskAnswerCommentsResponse } from './types/fetch-task-answer-comments';\r\nimport StudentCourseProgress from 'models/student-course/student-course-progress/student-course-progress';\r\n\r\nexport default class StudentCourseItemApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchStudentCourseItemsRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemsResponse);\r\n }\r\n\r\n public async fetchItem(request: FetchStudentCourseItemRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemResponse);\r\n }\r\n\r\n public async completeTheory(request: CompleteCourseItemTheoryRequest) {\r\n return await this.api.execute(request, CompleteCourseItemTheoryResponse);\r\n }\r\n\r\n completeTest = (studentCourseItemProgressId: string, courseItemTestId: string, isRight: boolean) =>\r\n this.api.post(`/student-course-item/complete-test`, { studentCourseItemProgressId, courseItemTestId, isRight }, json => StudentCourseProgress.fromJson(json));\r\n\r\n public async createTaskAnswer(request: CreateTaskAnswerRequest) {\r\n return await this.api.execute(request, CreateTaskAnswerResponse);\r\n }\r\n\r\n public async saveTaskAnswer(request: SaveTaskAnswerRequest) {\r\n return await this.api.execute(request, SaveTaskAnswerResponse);\r\n }\r\n\r\n public async createTaskAnswerComment(request: CreateTaskAnswerCommentRequest) {\r\n return await this.api.execute(request, CreateTaskAnswerCommentResponse);\r\n }\r\n\r\n public async saveTaskAnswerComment(request: SaveTaskAnswerCommentRequest) {\r\n return await this.api.execute(request, SaveTaskAnswerCommentResponse);\r\n }\r\n\r\n public async deleteTaskAnswerComment(request: DeleteTaskAnswerCommentRequest) {\r\n return await this.api.execute(request, DeleteTaskAnswerCommentResponse);\r\n }\r\n\r\n public async resetTaskAnswerStatus(request: ResetTaskAnswerStatusRequest) {\r\n return await this.api.execute(request, ResetTaskAnswerStatusResponse);\r\n }\r\n\r\n public async fetchTaskAnswerComments(request: FetchTaskAnswerCommentsRequest) {\r\n return await this.api.execute(request, FetchTaskAnswerCommentsResponse);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { School } from 'models';\r\n\r\nexport class FetchSchoolSettingsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/school-setting`;\r\n\r\n constructor(fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchSchoolSettingsResponse extends ApiResponse {\r\n public school: School;\r\n constructor(response: any) {\r\n super(response);\r\n this.school = School.fromJson(this.body);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchSchoolSettingsRequest, FetchSchoolSettingsResponse } from './fetch-school-settings';\r\n\r\nexport default class SchoolSettingsApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchSchoolSettingsRequest) {\r\n return await this.api.execute(request, FetchSchoolSettingsResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Gender } from '@axl/accel-framework/enums';\r\nimport moment from 'moment';\r\n\r\nexport type SaveStudentModel = {\r\n avatarId?: string;\r\n email?: string;\r\n firstName?: string;\r\n middleName?: string;\r\n lastName?: string;\r\n phone?: string;\r\n gender?: Gender;\r\n birthday?: moment.Moment;\r\n password?: string;\r\n};\r\n\r\nexport class SaveStudentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body = {\r\n ...this.model\r\n }\r\n public url: string = `/student`;\r\n\r\n constructor(public model: SaveStudentModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveStudentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ResendEmailConfirmationRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student/resend-email-confirmation`;\r\n}\r\n\r\nexport class ResendEmailConfirmationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\n\r\nexport class SelectLangRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/student/select-lang';\r\n public body: any = {\r\n lang: this.lang\r\n };\r\n\r\n constructor(public lang: Lang) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SelectLangResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UpdatePasswordModel = {\r\n password: string;\r\n};\r\n\r\nexport class UpdatePasswordRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body = {\r\n ...this.model\r\n }\r\n public url: string = `/student/update-password`;\r\n\r\n constructor(public model: UpdatePasswordModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UpdatePasswordResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { ApiRequest, ApiResponse, HttpMethod, toOptional } from '@axl/accel-framework/api';\r\nimport { ContactLicense, ContactLicenseFilter } from '@axl/accel-framework/models';\r\n\r\nexport default class SubscriptionApi {\r\n constructor(private api: Api) { }\r\n\r\n public async fetch(request: FetchSubscriptionsRequest) {\r\n return await this.api.execute(request, FetchSubcriptionsResponse);\r\n }\r\n\r\n public async fetchItem(request: FetchSubscriptionRequest) {\r\n return await this.api.execute(request, FetchSubcriptionResponse);\r\n }\r\n\r\n public async save(request: SaveSubscriptionRequest) {\r\n return await this.api.execute(request, SaveSubscriptionResponse);\r\n }\r\n}\r\n\r\n\r\nexport class FetchSubscriptionRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/student/subscription/${this.id}`;\r\n\r\n constructor(public id: string, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n beginDate,\r\n endDate,\r\n creditEndDate,\r\n type,\r\n state,\r\n product{\r\n id,\r\n name,\r\n subsPrice,\r\n subsDuration,\r\n subsDurationType,\r\n image{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n },\r\n currentSuspension{\r\n id,\r\n beginDate,\r\n endDate\r\n }\r\n }`;\r\n }\r\n\r\n}\r\n\r\nexport class FetchSubcriptionResponse extends ApiResponse {\r\n public subscription: ContactLicense;\r\n constructor(response: any) {\r\n super(response);\r\n this.subscription = ContactLicense.fromJson(this.body);\r\n }\r\n}\r\n\r\n\r\nexport class FetchSubscriptionsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/student/subscription';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter: ContactLicenseFilter, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n beginDate,\r\n endDate,\r\n creditEndDate,\r\n type,\r\n state,\r\n product{\r\n id,\r\n name,\r\n subsPrice,\r\n subsDuration,\r\n subsDurationType,\r\n image{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n },\r\n currentSuspension{\r\n id,\r\n beginDate,\r\n endDate\r\n }\r\n }`;\r\n }\r\n\r\n}\r\n\r\nexport class FetchSubcriptionsResponse extends ApiResponse {\r\n public filter: ContactLicenseFilter;\r\n public items: ContactLicense[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new ContactLicenseFilter(this.body.filter);\r\n this.items = this.body.items.map(ContactLicense.fromJson);\r\n }\r\n}\r\n\r\nexport class SaveSubscriptionRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/student/subscription';\r\n public body = {\r\n id: this.license.id,\r\n state: toOptional(this.license.state)\r\n }\r\n\r\n constructor(public license: PartialBut) {\r\n super();\r\n }\r\n\r\n}\r\n\r\nexport class SaveSubscriptionResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { ContactLicense, ContactLicenseFilter } from '@axl/accel-framework/models';\r\n\r\nexport default class LicenseApi {\r\n constructor(private api: Api) { }\r\n\r\n public async fetch(request: FetchLicensesRequest) {\r\n return await this.api.execute(request, FetchLicensesResponse);\r\n }\r\n}\r\n\r\n\r\nexport class FetchLicensesRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/student/license';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter: ContactLicenseFilter, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n beginDate,\r\n endDate,\r\n type,\r\n coursePlan {\r\n id,\r\n name,\r\n softDeleted,\r\n course {\r\n id,\r\n name,\r\n softDeleted\r\n }\r\n },\r\n course {\r\n id,\r\n name,\r\n softDeleted,\r\n primaryImage{\r\n id,\r\n file{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n }\r\n },\r\n libraryAccess{\r\n library{\r\n id,\r\n name,\r\n softDeleted,\r\n primaryImage{\r\n id,\r\n file{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }\r\n }\r\n }\r\n }\r\n }`;\r\n }\r\n\r\n}\r\n\r\nexport class FetchLicensesResponse extends ApiResponse {\r\n public filter: ContactLicenseFilter;\r\n public items: ContactLicense[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new ContactLicenseFilter(this.body.filter);\r\n this.items = this.body.items.map(ContactLicense.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { SaveStudentRequest, SaveStudentResponse } from './types/save-student';\r\nimport { ResendEmailConfirmationRequest, ResendEmailConfirmationResponse } from './types/resend-email-confirmation';\r\nimport { SelectLangRequest, SelectLangResponse } from './types/select-lang';\r\nimport { UpdatePasswordRequest, UpdatePasswordResponse } from './types/update-password';\r\nimport SubscriptionApi from './subscription';\r\nimport { CrudApi } from '@axl/accel-framework/api';\r\nimport { PurchaseOrder, StudentBonusTransaction } from '@axl/accel-framework/models';\r\nimport LicenseApi from './license';\r\n\r\nexport default class StudentApi {\r\n constructor(private api: Api) { }\r\n\r\n public async save(request: SaveStudentRequest) {\r\n return await this.api.execute(request, SaveStudentResponse);\r\n }\r\n\r\n public async updatePassword(request: UpdatePasswordRequest) {\r\n return await this.api.execute(request, UpdatePasswordResponse);\r\n }\r\n\r\n public async resendEmailConfirmation(request: ResendEmailConfirmationRequest) {\r\n return await this.api.execute(request, ResendEmailConfirmationResponse);\r\n }\r\n\r\n public async selectLang(request: SelectLangRequest) {\r\n return await this.api.execute(request, SelectLangResponse);\r\n }\r\n\r\n public license = new LicenseApi(this.api);\r\n public subscription = new SubscriptionApi(this.api);\r\n public order = new OrderApi(this.api);\r\n bonusTransaction = new BonusTransactionApi(this.api);\r\n}\r\n\r\nexport class OrderApi extends CrudApi {\r\n\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/student/order',\r\n parse: e => PurchaseOrder.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n createdDate,\r\n paidDate,\r\n currency,\r\n isDigitalDelivery,\r\n fullyPaid,\r\n shippingPrice,\r\n totalAmount,\r\n paidAmount,\r\n savingsAmount,\r\n status,\r\n completed,\r\n number,\r\n contents{\r\n id,\r\n quantity,\r\n product{\r\n id,\r\n name,\r\n type,\r\n price,\r\n softDeleted\r\n }\r\n }\r\n }`\r\n });\r\n }\r\n}\r\n\r\nexport class BonusTransactionApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/student/bonus-transaction',\r\n parse: e => StudentBonusTransaction.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n amount,\r\n comment,\r\n createdDate,\r\n order{\r\n id,\r\n number\r\n },\r\n type,\r\n transaction{\r\n id\r\n },\r\n validUntilDate\r\n }`\r\n });\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ContactInFilterRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/service/contact-in-filter';\r\n\r\n public body: any = {\r\n f: this.filterId,\r\n c: this.contactId\r\n };\r\n\r\n constructor(public filterId: string, public contactId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ContactInFilterResponse extends ApiResponse {\r\n public isInFilter: boolean;\r\n constructor(response?: any) {\r\n super(response);\r\n this.isInFilter = response.body.isInFilter;\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class KeepaliveRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/service/keepalive';\r\n}\r\n\r\nexport class KeepaliveResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type RunCustomEventRequestModel = {\r\n courseItemId: string,\r\n sitePageId: string,\r\n widgetId: string,\r\n eventName: string\r\n}\r\n\r\nexport class RunCustomEventRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/service/run-custom-event';\r\n \r\n public body = {\r\n ...this.model\r\n }\r\n\r\n\r\n constructor(public model: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RunCustomEventResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type TrackFormModel = {\r\n courseId?: string;\r\n courseItemId?: string;\r\n libraryItemId?: string;\r\n libraryId?: string;\r\n name?: string;\r\n fields: any;\r\n}\r\n\r\nexport class TrackFormRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/t/f`;\r\n\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class TrackFormResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class UpdateLocalizationRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/service/update-localization';\r\n}\r\n\r\nexport class UpdateLocalizationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { ContactInFilterRequest, ContactInFilterResponse } from './types/contact-in-filter';\r\nimport { KeepaliveRequest, KeepaliveResponse } from './types/keepalive';\r\nimport { RunCustomEventRequest, RunCustomEventResponse } from './types/run-custom-event';\r\nimport { TrackFormRequest, TrackFormResponse } from './types/track-form';\r\nimport { UpdateLocalizationRequest, UpdateLocalizationResponse } from './types/update-localization';\r\n\r\nexport default class ServiceApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async keepalive(request: KeepaliveRequest) {\r\n return await this.api.execute(request, KeepaliveResponse);\r\n }\r\n\r\n public async updateLocalization(request: UpdateLocalizationRequest) {\r\n return await this.api.execute(request, UpdateLocalizationResponse);\r\n }\r\n\r\n public async runCustomEvent(request: RunCustomEventRequest) {\r\n return await this.api.execute(request, RunCustomEventResponse);\r\n }\r\n\r\n public async contactInFilter(request: ContactInFilterRequest) {\r\n return await this.api.execute(request, ContactInFilterResponse);\r\n }\r\n\r\n public async trackForm(request: TrackFormRequest) {\r\n return await this.api.execute(request, TrackFormResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchCourseItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n\r\n public url: string = `/course-preview/${this.courseId}/items`;\r\n public body: any = {\r\n planId: this.planId\r\n };\r\n\r\n constructor(public courseId: string, public planId?: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseItemsResponse extends ApiResponse {\r\n items: StudentCourseItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(StudentCourseItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n \r\n public url: string = `/course-preview/${this.courseId}/items/${this.itemId}`;\r\n\r\n constructor(public courseId: string, public itemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseItemResponse extends ApiResponse {\r\n courseItem: StudentCourseItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.courseItem = StudentCourseItem.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Course } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCourseRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n name\r\n }`;\r\n public url: string = `/course-preview/${this.id}`;\r\n\r\n constructor(public id: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseResponse extends ApiResponse {\r\n course: Course;\r\n constructor(response: any) {\r\n super(response);\r\n this.course = Course.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { CoursePlanFilter, CoursePlan } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCoursePlansRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n name,\r\n disableTimeLimits,\r\n softDeleted\r\n }`;\r\n public url: string = `/course-preview/${this.courseId}/plans`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public courseId: string, public filter?: CoursePlanFilter, fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchCoursePlansResponse extends ApiResponse {\r\n public filter: CoursePlanFilter;\r\n public items: CoursePlan[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new CoursePlanFilter(this.body.filter);\r\n this.items = this.body.items.map(CoursePlan.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchCourseItemsRequest, FetchCourseItemsResponse } from './types/fetch-course-items';\r\nimport { FetchCourseItemRequest, FetchCourseItemResponse } from './types/fetch-course-item';\r\nimport { FetchCourseRequest, FetchCourseResponse } from './types/fetch-course';\r\nimport { FetchCoursePlansRequest, FetchCoursePlansResponse } from './types/fetch-course-plans';\r\n\r\nexport default class CoursePreviewApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchCourse(request: FetchCourseRequest) {\r\n return await this.api.execute(request, FetchCourseResponse);\r\n }\r\n\r\n public async fetchCourseItem(request: FetchCourseItemRequest) {\r\n return await this.api.execute(request, FetchCourseItemResponse);\r\n }\r\n\r\n public async fetchCourseItems(request: FetchCourseItemsRequest) {\r\n return await this.api.execute(request, FetchCourseItemsResponse);\r\n }\r\n\r\n public async fetchCoursePlans(request: FetchCoursePlansRequest){\r\n return await this.api.execute(request, FetchCoursePlansResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourse } from 'models';\r\n\r\nexport class FetchStudentCourseRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n beginDate,\r\n endDate,\r\n state,\r\n flowBeginDate,\r\n accessBeginDate,\r\n course{\r\n id,\r\n name,\r\n dontAskFeedback\r\n },\r\n currentCourseItem{\r\n id\r\n }, \r\n student{\r\n id,\r\n firstName,\r\n lastName\r\n },\r\n progress\r\n }`;\r\n public url: string = `/student-course-preview/${this.studentCourseId}`;\r\n\r\n constructor(public studentCourseId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseResponse extends ApiResponse {\r\n studentCourse: StudentCourse;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourse = StudentCourse.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n\r\n constructor(public studentCourseId: string, public itemId: string) {\r\n super();\r\n this.url = `/student-course-preview/${this.studentCourseId}/items/${this.itemId}`;\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemResponse extends ApiResponse {\r\n studentCourseItem: StudentCourseItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.studentCourseItem = StudentCourseItem.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseItem } from 'models';\r\n\r\nexport class FetchStudentCourseItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n\r\n public url: string = `/student-course-preview/${this.studentCourseId}/items`;\r\n\r\n constructor(public studentCourseId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStudentCourseItemsResponse extends ApiResponse {\r\n items: StudentCourseItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(StudentCourseItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class CompleteStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/complete`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CompleteStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class ResetStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/uncomplete`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ResetStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class UnblockStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/open`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UnblockStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport class BlockStudentCourseItemRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/student-course-preview/item/close`;\r\n public body = {\r\n studentCourseId: this.studentCourseId,\r\n courseItemId: this.courseItemId\r\n }\r\n\r\n constructor(public studentCourseId: string, public courseItemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class BlockStudentCourseItemResponse extends ApiResponse {\r\n progresses: StudentCourseProgress[];\r\n constructor(response: any) {\r\n super(response);\r\n this.progresses = this.body.map(StudentCourseProgress.fromJson);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStudentCourseRequest, FetchStudentCourseResponse } from './types/fetch-student-course';\r\nimport { FetchStudentCourseItemRequest, FetchStudentCourseItemResponse } from './types/fetch-student-course-item';\r\nimport { FetchStudentCourseItemsRequest, FetchStudentCourseItemsResponse } from './types/fetch-student-course-items';\r\nimport { CompleteStudentCourseItemRequest, CompleteStudentCourseItemResponse } from './types/complete-student-course-item';\r\nimport { ResetStudentCourseItemRequest, ResetStudentCourseItemResponse } from './types/reset-student-course-item';\r\nimport { UnblockStudentCourseItemRequest, UnblockStudentCourseItemResponse } from './types/unblock-student-course-item';\r\nimport { BlockStudentCourseItemRequest, BlockStudentCourseItemResponse } from './types/block-student-course-item';\r\n\r\n\r\nexport default class StudentCoursePreviewApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchStudentCourse(request: FetchStudentCourseRequest) {\r\n return await this.api.execute(request, FetchStudentCourseResponse);\r\n }\r\n\r\n public async fetchStudentCourseItem(request: FetchStudentCourseItemRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemResponse);\r\n }\r\n\r\n public async fetchStudentCourseItems(request: FetchStudentCourseItemsRequest) {\r\n return await this.api.execute(request, FetchStudentCourseItemsResponse);\r\n }\r\n\r\n public async completeStudentCourseItem(request: CompleteStudentCourseItemRequest) {\r\n return await this.api.execute(request, CompleteStudentCourseItemResponse);\r\n }\r\n\r\n public async resetStudentCourseItem(request: ResetStudentCourseItemRequest) {\r\n return await this.api.execute(request, ResetStudentCourseItemResponse);\r\n }\r\n\r\n public async unblockStudentCourseItem(request: UnblockStudentCourseItemRequest) {\r\n return await this.api.execute(request, UnblockStudentCourseItemResponse);\r\n }\r\n\r\n public async blockStudentCourseItem(request: BlockStudentCourseItemRequest) {\r\n return await this.api.execute(request, BlockStudentCourseItemResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { ForumThread, ForumTopic } from '@axl/accel-framework/models';\r\nimport type { BanStatus } from '../models/ban-status';\r\n\r\nexport class FetchForumThreadRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n canModerate,\r\n thread{\r\n id,\r\n title,\r\n description,\r\n designHTMLPublished,\r\n designStylePublished,\r\n canStudentCreateTopics,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n topicCount,\r\n commentCount\r\n },\r\n threads{\r\n id,\r\n title,\r\n description,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n topicCount,\r\n commentCount\r\n },\r\n topics{\r\n id,\r\n title,\r\n text,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n commentCount,\r\n lastComment{\r\n id,\r\n createdDate,\r\n student{\r\n id,\r\n firstName,\r\n lastName\r\n }\r\n },\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n }\r\n },\r\n breadcrumbs(filter:\"{useSort:false}\"){\r\n id, \r\n title\r\n },\r\n banStatus{\r\n type,\r\n untilDate\r\n }\r\n }`;\r\n public url: string = this.threadId ? `/forum/thread/${this.threadId}` : '/forum/thread';\r\n\r\n constructor(public threadId: string | null) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchForumThreadResponse extends ApiResponse {\r\n canModerate: boolean;\r\n thread: ForumThread | null;\r\n threads: ForumThread[];\r\n topics: ForumTopic[];\r\n breadcrumbs: ForumThread[];\r\n banStatus: BanStatus | null;\r\n constructor(response: any) {\r\n super(response);\r\n this.canModerate = this.body.canModerate;\r\n this.thread = this.body.thread ? ForumThread.fromJson(this.body.thread) : null;\r\n this.threads = this.body.threads.map(ForumThread.fromJson);\r\n this.topics = this.body.topics.map(ForumTopic.fromJson);\r\n this.breadcrumbs = this.body.breadcrumbs.map(ForumThread.fromJson);\r\n this.banStatus = this.body.banStatus\r\n ? {\r\n ...this.body.banStatus,\r\n untilDate: this.body.banStatus.untilDate ? new Date(this.body.banStatus.untilDate) : null\r\n } : null\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type CreateTopicRequestModel = {\r\n threadId: string,\r\n title: string,\r\n text: string,\r\n files: string[]\r\n}\r\nexport class CreateTopicRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/forum/topic';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateTopicRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTopicResponse extends ApiResponse {\r\n id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { TopicComment, TopicCommentFilter } from '@axl/accel-framework/models';\r\n\r\nconst replyCommentFields = `\r\n id,\r\n text,\r\n createdDate,\r\n sequenceNumber,\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email,\r\n avatar {\r\n id,\r\n cloudKey\r\n }\r\n }\r\n `;\r\nconst commentFields = `{\r\n id,\r\n text,\r\n createdDate,\r\n updatedDate,\r\n sequenceNumber,\r\n replyToComment{\r\n ${replyCommentFields}\r\n }\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email,\r\n avatar {\r\n id,\r\n cloudKey\r\n }\r\n },\r\n files{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n },\r\n likeCount,\r\n dislikeCount,\r\n currentUserReaction{\r\n id,\r\n type\r\n }\r\n }`;\r\nexport { commentFields };\r\n\r\nexport class FetchTopicCommentsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = commentFields;\r\n public url: string = '/forum/topic/comment';\r\n public body = {\r\n ...this.filter\r\n }\r\n\r\n constructor(public filter: TopicCommentFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTopicCommentsResponse extends ApiResponse {\r\n public items: TopicComment[];\r\n public filter: TopicCommentFilter;\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(TopicComment.fromJson);\r\n this.filter = new TopicCommentFilter(this.body.filter);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { ForumTopic, ForumThread } from '@axl/accel-framework/models';\r\nimport type { BanStatus } from '../models/ban-status';\r\n\r\nexport class FetchTopicRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n canModerate,\r\n topic{\r\n id,\r\n title,\r\n text,\r\n createdDate,\r\n updatedDate,\r\n lastActivityDate,\r\n commentCount,\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email,\r\n avatar {\r\n id,\r\n cloudKey\r\n }\r\n },\r\n files{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n },\r\n likeCount,\r\n dislikeCount,\r\n currentUserReaction{\r\n id,\r\n type\r\n }\r\n },\r\n breadcrumbs(filter:\"{useSort:false}\"){\r\n id, \r\n title\r\n },\r\n banStatus{\r\n type,\r\n untilDate\r\n }\r\n }`;\r\n public url: string = `/forum/topic/${this.topicId}`;\r\n\r\n constructor(public topicId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTopicResponse extends ApiResponse {\r\n canModerate: boolean;\r\n topic: ForumTopic;\r\n breadcrumbs: ForumThread[];\r\n banStatus: BanStatus | null;\r\n constructor(response: any) {\r\n super(response);\r\n this.canModerate = this.body.canModerate;\r\n this.topic = ForumTopic.fromJson(this.body.topic);\r\n this.breadcrumbs = this.body.breadcrumbs.map(ForumTopic.fromJson);\r\n this.banStatus = this.body.banStatus\r\n ? {\r\n ...this.body.banStatus,\r\n untilDate: this.body.banStatus.untilDate ? new Date(this.body.banStatus.untilDate) : null\r\n }\r\n : null;\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { TopicComment } from '@axl/accel-framework/models';\r\nimport { commentFields } from './fetch-topic-comments';\r\n\r\nexport type CreateTopicCommentRequestModel = {\r\n topicId: string,\r\n replyId?: string,\r\n text: string,\r\n files: string[]\r\n}\r\nexport class CreateTopicCommentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/forum/topic/comment';\r\n public body = {\r\n ...this.model,\r\n fields: commentFields\r\n }\r\n\r\n constructor(public model: CreateTopicCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateTopicCommentResponse extends ApiResponse {\r\n comment: TopicComment;\r\n itemsTotal: number;\r\n constructor(response: any) {\r\n super(response);\r\n this.comment = TopicComment.fromJson(this.body.comment);\r\n this.itemsTotal = this.body.itemsTotal;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UpdateTopicCommentRequestModel = {\r\n commentId: string,\r\n text: string,\r\n files: string[]\r\n replyId?: string;\r\n}\r\nexport class UpdateTopicCommentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/forum/topic/comment';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: UpdateTopicCommentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UpdateTopicCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteTopicCommentRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/forum/topic/comment/${this.commentId}`;\r\n\r\n constructor(public commentId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteTopicCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UpdateTopicRequestModel = {\r\n id: string,\r\n text: string,\r\n files: string[]\r\n}\r\n\r\nexport class UpdateTopicRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/forum/topic';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: UpdateTopicRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UpdateTopicResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class FetchTopicCommentPositionRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/forum/topic/${this.topicId}/comment-position/${this.sequenceNumber}`;\r\n\r\n constructor(public topicId: string, public sequenceNumber: number) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchTopicCommentPositionResponse extends ApiResponse {\r\n public position: number;\r\n constructor(response: any) {\r\n super(response);\r\n this.position = this.body;\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteTopicRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/forum/topic/${this.topicId}`;\r\n\r\n constructor(public topicId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteTopicResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type BlockStudentRequestModel = {\r\n threadId: string;\r\n studentId: string;\r\n reason: string;\r\n beginDate: Date;\r\n endDate: Date | null;\r\n topicId?: string;\r\n commentId?: string;\r\n}\r\n\r\nexport class BlockStudentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/forum/block-student`;\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: BlockStudentRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class BlockStudentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport type { ForumReactionType } from '@axl/accel-framework/models/forum/reaction/ForumReactionType';\r\nimport { ForumReaction } from '@axl/accel-framework/models';\r\n\r\nexport type CreateReactionRequestModel = {\r\n topicId?: string;\r\n commentId?: string;\r\n type: ForumReactionType;\r\n}\r\nexport class CreateReactionRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/forum/reaction';\r\n public body = {\r\n ...this.model\r\n }\r\n\r\n constructor(public model: CreateReactionRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateReactionResponse extends ApiResponse {\r\n reaction: ForumReaction;\r\n constructor(response: any) {\r\n super(response);\r\n this.reaction = ForumReaction.fromJson(response.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteReactionRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/forum/reaction/${this.reactionId}`;\r\n\r\n constructor(public reactionId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteReactionResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchForumThreadRequest, FetchForumThreadResponse } from './types/fetch-forum-thread';\r\nimport { CreateTopicRequest, CreateTopicResponse } from './types/create-topic';\r\nimport { FetchTopicCommentsRequest, FetchTopicCommentsResponse } from './types/fetch-topic-comments';\r\nimport { FetchTopicRequest, FetchTopicResponse } from './types/fetch-topic';\r\nimport { CreateTopicCommentRequest, CreateTopicCommentResponse } from './types/create-topic-comment';\r\nimport { UpdateTopicCommentRequest, UpdateTopicCommentResponse } from './types/update-topic-comment';\r\nimport { DeleteTopicCommentRequest, DeleteTopicCommentResponse } from './types/delete-topic-comment';\r\nimport { UpdateTopicRequest, UpdateTopicResponse } from './types/update-topic';\r\nimport { FetchTopicCommentPositionRequest, FetchTopicCommentPositionResponse } from './types/fetch-topic-comment-position';\r\nimport { DeleteTopicRequest, DeleteTopicResponse } from './types/delete-topic';\r\nimport { BlockStudentRequest, BlockStudentResponse } from './types/block-student';\r\nimport { CreateReactionRequest, CreateReactionResponse } from './types/create-reaction';\r\nimport { DeleteReactionRequest, DeleteReactionResponse } from './types/delete-reaction';\r\n\r\nexport default class ForumApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchThread(request: FetchForumThreadRequest) {\r\n return await this.api.execute(request, FetchForumThreadResponse);\r\n }\r\n\r\n public async fetchTopic(request: FetchTopicRequest) {\r\n return await this.api.execute(request, FetchTopicResponse);\r\n }\r\n\r\n public async createTopic(request: CreateTopicRequest) {\r\n return await this.api.execute(request, CreateTopicResponse);\r\n }\r\n\r\n public async updateTopic(request: UpdateTopicRequest) {\r\n return await this.api.execute(request, UpdateTopicResponse);\r\n }\r\n\r\n public async fetchTopicComments(request: FetchTopicCommentsRequest) {\r\n return await this.api.execute(request, FetchTopicCommentsResponse);\r\n }\r\n\r\n public async createTopicComment(request: CreateTopicCommentRequest) {\r\n return await this.api.execute(request, CreateTopicCommentResponse);\r\n }\r\n\r\n public async updateTopicComment(request: UpdateTopicCommentRequest) {\r\n return await this.api.execute(request, UpdateTopicCommentResponse);\r\n }\r\n\r\n public async deleteTopicComment(request: DeleteTopicCommentRequest) {\r\n return await this.api.execute(request, DeleteTopicCommentResponse);\r\n }\r\n\r\n public async fetchTopicCommentPosition(request: FetchTopicCommentPositionRequest) {\r\n return await this.api.execute(request, FetchTopicCommentPositionResponse);\r\n }\r\n\r\n public async deleteTopic(request: DeleteTopicRequest) {\r\n return await this.api.execute(request, DeleteTopicResponse);\r\n }\r\n\r\n public async blockStudent(request: BlockStudentRequest) {\r\n return await this.api.execute(request, BlockStudentResponse);\r\n }\r\n\r\n public async createReaction(request: CreateReactionRequest) {\r\n return await this.api.execute(request, CreateReactionResponse);\r\n }\r\n\r\n public async updateReaction(request: CreateReactionRequest) {\r\n return await this.api.execute(request, CreateReactionResponse);\r\n }\r\n\r\n public async deleteReaction(request: DeleteReactionRequest) {\r\n return await this.api.execute(request, DeleteReactionResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type FetchStatusResponseModel = {\r\n email: string;\r\n unsubscribed: boolean;\r\n}\r\n\r\nexport class FetchStatusRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/student/email-broadcast-subscription-status/${this.studentId}/${this.messageId}`;\r\n\r\n constructor(public studentId: string, public messageId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchStatusResponse extends ApiResponse {\r\n status: FetchStatusResponseModel;\r\n constructor(response: any) {\r\n super(response);\r\n this.status = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport type UnsubscribeModel = {\r\n messageId: string;\r\n studentId: string;\r\n timestamp: number;\r\n hash: string;\r\n}\r\n\r\nexport class UnsubscribeRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body = {\r\n ...this.model\r\n }\r\n public url: string = `/student/unsubscribe-email-broadcast`;\r\n\r\n constructor(public model: UnsubscribeModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UnsubscribeResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchStatusRequest, FetchStatusResponse } from './types/fetch-status';\r\nimport { UnsubscribeRequest, UnsubscribeResponse } from './types/unsubscribe';\r\n\r\nexport default class StudentEmailBroadcastApi {\r\n constructor(private api: Api) { }\r\n\r\n public async fetchStatus(request: FetchStatusRequest) {\r\n return await this.api.execute(request, FetchStatusResponse);\r\n }\r\n\r\n public async unsubscribe(request: UnsubscribeRequest) {\r\n return await this.api.execute(request, UnsubscribeResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolLibraryItem, SchoolLibraryItemFilter } from 'models';\r\n\r\nexport class FetchSchoolLibraryItemsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n title,\r\n type,\r\n flowTimeDelayActive,\r\n flowTimeDelay,\r\n flowTimeDelayCondition,\r\n flowTimeDelayMeasureType,\r\n preventCopingAndSelectingText,\r\n allowComments,\r\n showComments,\r\n ratingEnabled,\r\n ratingCommentRequired,\r\n studentHasAccess,\r\n position,\r\n parentItem {\r\n id,\r\n }\r\n progress {\r\n id\r\n }\r\n }`;\r\n\r\n public url: string = `/school-library-item`;\r\n\r\n constructor(public libraryId: string) {\r\n super();\r\n this.body = {\r\n ... new SchoolLibraryItemFilter({ libraryId: libraryId, useBaseFilter: false })\r\n };\r\n }\r\n}\r\n\r\nexport class FetchSchoolLibraryItemsResponse extends ApiResponse {\r\n items: SchoolLibraryItem[];\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(SchoolLibraryItem.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolLibraryItem } from 'models';\r\n\r\nexport class FetchSchoolLibraryItemRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n private filesSelector = `files(filter:\"{take:0}\") {\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n }`;\r\n public fields = `{\r\n id,\r\n title,\r\n type,\r\n designHTMLPublished,\r\n designStylePublished,\r\n ratingEnabled,\r\n progress{\r\n id,\r\n beginDate,\r\n rating {\r\n id,\r\n comment,\r\n rating,\r\n createdDate,\r\n updatedDate,\r\n ${this.filesSelector}\r\n }\r\n },\r\n\r\n }`;\r\n public url: string = `/school-library-item/${this.libraryId}/${this.itemId}`;\r\n\r\n constructor(public libraryId: string, public itemId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchSchoolLibraryItemResponse extends ApiResponse {\r\n libraryItem: SchoolLibraryItem;\r\n constructor(response: any) {\r\n super(response);\r\n this.libraryItem = SchoolLibraryItem.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolLibrary } from 'models';\r\n\r\nexport class FetchSchoolLibraryRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n title,\r\n flowBeginDate\r\n }`;\r\n public url: string = `/school-library/${this.id}`;\r\n\r\n constructor(public id: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchSchoolLibraryResponse extends ApiResponse {\r\n library: SchoolLibrary;\r\n constructor(response: any) {\r\n super(response);\r\n this.library = SchoolLibrary.fromJson(this.body);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchSchoolLibraryItemsRequest, FetchSchoolLibraryItemsResponse } from './types/fetch-school-library-items';\r\nimport { FetchSchoolLibraryItemRequest, FetchSchoolLibraryItemResponse } from './types/fetch-school-library-item';\r\nimport { FetchSchoolLibraryRequest, FetchSchoolLibraryResponse } from './types/fetch-school-library';\r\n\r\nexport default class SchoolLibraryApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetchLibrary(request: FetchSchoolLibraryRequest) {\r\n return await this.api.execute(request, FetchSchoolLibraryResponse);\r\n }\r\n\r\n public async fetchLibraryItem(request: FetchSchoolLibraryItemRequest) {\r\n return await this.api.execute(request, FetchSchoolLibraryItemResponse);\r\n }\r\n\r\n public async fetchLibraryItems(request: FetchSchoolLibraryItemsRequest) {\r\n return await this.api.execute(request, FetchSchoolLibraryItemsResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemProgressRating, SchoolContentItemProgressRatingFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCourseItemRatingRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/school-content-item-rating';\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter: SchoolContentItemProgressRatingFilter, fields?: string) {\r\n super();\r\n this.fields = fields ?? `{\r\n id,\r\n comment,\r\n rating,\r\n createdDate,\r\n updatedDate,\r\n student{\r\n id,\r\n email,\r\n firstName,\r\n lastName\r\n },\r\n comments(filter:\"{take:5}\"){\r\n id,\r\n text,\r\n createdDate,\r\n student{\r\n id,\r\n email,\r\n firstName,\r\n lastName,\r\n avatar {\r\n id,\r\n cloudKey\r\n },\r\n },\r\n admin{\r\n id,\r\n email,\r\n firstName,\r\n lastName,\r\n avatar {\r\n id,\r\n cloudKey\r\n },\r\n },\r\n files{\r\n id,\r\n name,\r\n cloudKey,\r\n extension,\r\n size,\r\n type\r\n },\r\n _count\r\n },\r\n courseItem{\r\n id,\r\n title,\r\n position,\r\n parentItem{\r\n id,\r\n title,\r\n position\r\n },\r\n course{\r\n id,\r\n name\r\n }\r\n }\r\n }`;\r\n }\r\n}\r\n\r\nexport class FetchCourseItemRatingsResponse extends ApiResponse {\r\n public filter: SchoolContentItemProgressRatingFilter;\r\n public items: SchoolContentItemProgressRating[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new SchoolContentItemProgressRatingFilter(this.body.filter);\r\n this.items = this.body.items.map(SchoolContentItemProgressRating.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemProgressRating } from '@axl/accel-framework/models';\r\n\r\nexport class SaveCourseItemRatingRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/school-content-item-rating`;\r\n public body = {\r\n ...this.rating,\r\n fileIds: this.rating.files?.map(i => i.id) ?? [],\r\n }\r\n\r\n constructor(public rating: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveCourseItemRatingResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemProgressRating, SchoolContentSectionType } from '@axl/accel-framework/models';\r\nimport { StudentCourseProgress } from 'models';\r\n\r\nexport type CreateCourseItemRating = {\r\n sectionType: SchoolContentSectionType;\r\n targetItemId: string;\r\n targetProgressId: string;\r\n text: string;\r\n fileIds: string[];\r\n rating?: number;\r\n}\r\nexport class CreateCourseItemRatingRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/school-content-item-rating';\r\n public body: CreateCourseItemRating = {\r\n sectionType: this.sectionType,\r\n targetItemId: this.targetItemId,\r\n targetProgressId: this.targerProgressId,\r\n fileIds: this.rating.files?.map(x => x.id) ?? [],\r\n text: this.rating.comment,\r\n rating: this.rating.rating,\r\n };\r\n\r\n constructor(\r\n public rating: SchoolContentItemProgressRating, \r\n public sectionType: SchoolContentSectionType, \r\n public targetItemId: string, \r\n public targerProgressId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateCourseItemRatingResponse extends ApiResponse {\r\n public id: string;\r\n public progress: StudentCourseProgress;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body.ratingId;\r\n this.progress = StudentCourseProgress.fromJson(this.body.progress);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchCourseItemRatingRequest, FetchCourseItemRatingsResponse } from './types/fetch-course-item-ratings';\r\nimport { SaveCourseItemRatingRequest, SaveCourseItemRatingResponse } from './types/save-course-item-rating';\r\nimport { CreateCourseItemRatingRequest, CreateCourseItemRatingResponse } from './types/create-course-item-rating';\r\n\r\nexport default class CourseItemRatingApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchCourseItemRatingRequest) {\r\n return await this.api.execute(request, FetchCourseItemRatingsResponse);\r\n }\r\n\r\n public async save(request: SaveCourseItemRatingRequest) {\r\n return await this.api.execute(request, SaveCourseItemRatingResponse);\r\n }\r\n\r\n public async create(request: CreateCourseItemRatingRequest) {\r\n return await this.api.execute(request, CreateCourseItemRatingResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemComment, SchoolContentItemCommentFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCourseItemCommentsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/school-content-item-comment/${this.progressId}`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public progressId: string, public filter: SchoolContentItemCommentFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCourseItemCommentsResponse extends ApiResponse {\r\n public filter: SchoolContentItemCommentFilter;\r\n public items: SchoolContentItemComment[];\r\n constructor(response: any) {\r\n super(response);\r\n this.filter = new SchoolContentItemCommentFilter(this.body.filter);\r\n this.items = this.body.items.map(SchoolContentItemComment.fromJson);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemComment, CourseItemCommentState } from '@axl/accel-framework/models';\r\n\r\nexport type SaveCourseItemComment = {\r\n id: string;\r\n text: string;\r\n replyId?: string;\r\n fileIds: string[];\r\n state: CourseItemCommentState;\r\n}\r\n\r\nexport class SaveCourseItemCommentRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = `/school-content-item-comment`;\r\n public body: SaveCourseItemComment = {\r\n id: this.comment.id,\r\n text: this.comment.text,\r\n fileIds: this.comment.files?.map(x => x.id),\r\n state: this.comment.state,\r\n replyId: this.comment.replyId\r\n }\r\n\r\n constructor(public comment: SchoolContentItemComment) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveCourseItemCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { SchoolContentItemComment, SchoolContentSectionType } from '@axl/accel-framework/models';\r\n\r\nexport type CreateCourseItemComment = {\r\n targetItemId: string;\r\n sectionType: SchoolContentSectionType;\r\n targetProgressId: string;\r\n ratingId?: string;\r\n parentId?: string;\r\n replyId?: string;\r\n text: string;\r\n fileIds: string[];\r\n}\r\nexport class CreateCourseItemCommentRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/school-content-item-comment';\r\n public body: CreateCourseItemComment = {\r\n targetItemId: this.targetItemId,\r\n sectionType: this.sectionType,\r\n targetProgressId: this.targetProgressId,\r\n ratingId: this.ratingId,\r\n parentId: this.comment.parentId,\r\n replyId: this.comment.replyId,\r\n text: this.comment.text,\r\n fileIds: this.comment.files?.map(x => x.id)\r\n };\r\n\r\n constructor(public comment: SchoolContentItemComment,\r\n public sectionType: SchoolContentSectionType,\r\n public targetItemId: string,\r\n public targetProgressId: string,\r\n public ratingId?: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CreateCourseItemCommentResponse extends ApiResponse {\r\n public id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class RemoveCourseItemCommentRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/school-content-item-comment/${this.commentId}`;\r\n\r\n constructor(public commentId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RemoveCourseItemCommentResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchCourseItemCommentsRequest, FetchCourseItemCommentsResponse } from './types/fetch-course-item-comments';\r\nimport { SaveCourseItemCommentRequest, SaveCourseItemCommentResponse } from './types/save-course-item-comment';\r\nimport { CreateCourseItemCommentRequest, CreateCourseItemCommentResponse } from './types/create-course-item-comment';\r\nimport { RemoveCourseItemCommentRequest, RemoveCourseItemCommentResponse } from './types/remove-course-item-comment';\r\n\r\nexport default class CourseItemCommentApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchCourseItemCommentsRequest) {\r\n return await this.api.execute(request, FetchCourseItemCommentsResponse);\r\n }\r\n\r\n public async save(request: SaveCourseItemCommentRequest) {\r\n return await this.api.execute(request, SaveCourseItemCommentResponse);\r\n }\r\n\r\n public async create(request: CreateCourseItemCommentRequest) {\r\n return await this.api.execute(request, CreateCourseItemCommentResponse);\r\n }\r\n\r\n public async remove(request: RemoveCourseItemCommentRequest) {\r\n return await this.api.execute(request, RemoveCourseItemCommentResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LoginRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/login';\r\n public body: any = {\r\n contactId: this.contactId,\r\n email: this.email,\r\n password: this.password,\r\n rememberMe: true\r\n };\r\n public authorized = false;\r\n\r\n constructor(public email: string, public password: string, public contactId?: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LoginResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class RefreshTokenRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/refresh';\r\n public body: any = {\r\n token: this.refreshToken\r\n };\r\n public authorized = false;\r\n\r\n constructor(public refreshToken: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RefreshTokenResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\n\r\nexport type RegisterRequestModel = {\r\n contactId?: string;\r\n email: string;\r\n password: string;\r\n confirmPassword: string;\r\n lang: Lang;\r\n timezoneOffset: string;\r\n urlParameters: any;\r\n isAgreementAccepted: boolean;\r\n inviteToken?: string;\r\n}\r\n\r\nexport class RegisterRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/register';\r\n public body: any = {\r\n ...this.model\r\n };\r\n public authorized = false;\r\n\r\n constructor(public model: RegisterRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RegisterResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ResetPasswordRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/reset-password';\r\n public body: any = {\r\n token: this.token,\r\n password: this.password,\r\n confirmPassword: this.confirmPassword,\r\n };\r\n public authorized = false;\r\n\r\n constructor(public token: string,\r\n public password: string,\r\n public confirmPassword: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ResetPasswordResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ForgotPasswordRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/forgot-password';\r\n public body: any = {\r\n email: this.email\r\n };\r\n public authorized = false;\r\n\r\n constructor(public email: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ForgotPasswordResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\ntype ConfirmEmailModel = {\r\n token: string,\r\n userId: string,\r\n}\r\n\r\nexport class ConfirmEmailRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/confirm-email';\r\n public body: any = {\r\n ...this.model\r\n };\r\n\r\n constructor(public model: ConfirmEmailModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ConfirmEmailResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ConfirmInviteModel {\r\n token: string\r\n password: string;\r\n confirmPassword: string;\r\n}\r\n\r\nexport class ConfirmInviteRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/confirm-invite';\r\n public body: any = {\r\n ...this.model\r\n };\r\n\r\n constructor(public model: ConfirmInviteModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ConfirmInviteResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { InviteStatus } from '@axl/accel-framework/enums';\r\n\r\nexport class CheckInviteRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/authorization/check-invite/${this.token}`;\r\n\r\n constructor(public token: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class CheckInviteResponse extends ApiResponse {\r\n public status: InviteStatus;\r\n constructor(response?: any) {\r\n super(response);\r\n this.status = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LoginTokenRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/login-token';\r\n public body = {\r\n token: this.token,\r\n }\r\n\r\n constructor(public token: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LoginTokenResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LogoutRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/logout';\r\n public body: any = {\r\n token: this.refreshToken\r\n };\r\n public authorized = true;\r\n\r\n constructor(public refreshToken: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LogoutResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class ProlongSessionRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/prolong-session';\r\n public body: any = {\r\n token: this.refreshToken\r\n };\r\n public authorized = true;\r\n\r\n constructor(public refreshToken: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class ProlongSessionResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Student } from 'models';\r\n\r\nexport class FetchMeRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = '/authorization/me';\r\n}\r\n\r\nexport class FetchMeResponse extends ApiResponse {\r\n public student: Student;\r\n constructor(response: any) {\r\n super(response);\r\n this.student = Student.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class LoginAsModel {\r\n sessionId: string;\r\n studentId: string;\r\n timestamp: number;\r\n signature: string;\r\n}\r\n\r\nexport class LoginAsRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/login-as';\r\n public body: any = {\r\n ...this.model\r\n };\r\n\r\n constructor(public model: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class LoginAsResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class SendInviteRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/send-invite';\r\n public body: any = {\r\n email: this.email\r\n };\r\n\r\n constructor(public email: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SendInviteResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class FetchContactRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/authorization/contact/${this.contactId}`;\r\n\r\n constructor(public contactId: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchContactResponse extends ApiResponse {\r\n public id: string;\r\n public email: string;\r\n public isRegistered: boolean;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body.id,\r\n this.email = this.body.email,\r\n this.isRegistered = this.body.isRegistered\r\n }\r\n}\r\n","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\n\r\nexport type RegisterContactRequestModel = {\r\n contactId: string;\r\n email: string;\r\n password: string;\r\n confirmPassword: string;\r\n lang: Lang;\r\n timezoneOffset: string;\r\n urlParameters: any;\r\n isAgreementAccepted: boolean;\r\n}\r\n\r\nexport class RegisterContactRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/authorization/register-contact';\r\n public body: any = {\r\n ...this.model\r\n };\r\n public authorized = false;\r\n\r\n constructor(public model: RegisterContactRequestModel) {\r\n super();\r\n }\r\n}\r\n\r\nexport class RegisterContactResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class FetchEmailNotificationsSubscriptionStatusRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/authorization/email-notifications-subscription-status?studentId=${this.studentId}&email=${this.email}`;\r\n\r\n constructor(public studentId: string, public email:string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchEmailNotificationsSubscriptionStatusResponse extends ApiResponse {\r\n public subscribed: boolean;\r\n constructor(response: any) {\r\n super(response);\r\n this.subscribed = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class UnsubscribeEmailNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/authorization/unsubscribe-email-notifications';\r\n public body: any = {\r\n studentId: this.studentId,\r\n email: this.email\r\n };\r\n\r\n constructor(public studentId: string, public email:string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class UnsubscribeEmailNotificationsResponse extends ApiResponse {\r\n constructor(response?: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { LoginRequest, LoginResponse } from './types/login';\r\nimport { RefreshTokenRequest, RefreshTokenResponse } from './types/refresh-token';\r\nimport { RegisterRequest, RegisterResponse } from './types/register';\r\nimport { ResetPasswordResponse, ResetPasswordRequest } from './types/reset-password';\r\nimport { ForgotPasswordRequest, ForgotPasswordResponse } from './types/forgot-password';\r\nimport { ConfirmEmailRequest, ConfirmEmailResponse } from './types/confirm-email';\r\nimport { ConfirmInviteRequest, ConfirmInviteResponse } from './types/confirm-invite';\r\nimport { CheckInviteRequest, CheckInviteResponse } from './types/check-invite';\r\nimport { LoginTokenRequest, LoginTokenResponse } from './types/login-token';\r\nimport { LogoutRequest, LogoutResponse } from './types/logout';\r\nimport { ProlongSessionRequest, ProlongSessionResponse } from './types/prolong-session';\r\nimport { FetchMeRequest, FetchMeResponse } from './types/me';\r\nimport { LoginAsRequest, LoginAsResponse } from './types/login-as';\r\nimport { SendInviteRequest, SendInviteResponse } from './types/send-invite';\r\nimport { FetchContactRequest, FetchContactResponse } from './types/contact';\r\nimport { RegisterContactRequest, RegisterContactResponse } from './types/register-contact';\r\nimport { FetchEmailNotificationsSubscriptionStatusRequest, FetchEmailNotificationsSubscriptionStatusResponse } from './types/email-notifications-subscription-status';\r\nimport { UnsubscribeEmailNotificationsRequest, UnsubscribeEmailNotificationsResponse } from './types/unsubscribe-email-notifications';\r\n\r\nexport default class AuthApi {\r\n constructor(protected api: Api) {\r\n }\r\n\r\n public async login(request: LoginRequest) {\r\n return await this.api.execute(request, LoginResponse);\r\n }\r\n\r\n public async logout(request: LogoutRequest) {\r\n return await this.api.execute(request, LogoutResponse);\r\n }\r\n\r\n public async refreshToken(request: RefreshTokenRequest) {\r\n return await this.api.execute(request, RefreshTokenResponse);\r\n }\r\n\r\n public async register(request: RegisterRequest) {\r\n return await this.api.execute(request, RegisterResponse);\r\n }\r\n\r\n public async registerContact(request: RegisterContactRequest) {\r\n return await this.api.execute(request, RegisterContactResponse);\r\n }\r\n\r\n public async resetPassword(request: ResetPasswordRequest) {\r\n return await this.api.execute(request, ResetPasswordResponse);\r\n }\r\n\r\n public async confirmEmail(request: ConfirmEmailRequest) {\r\n return await this.api.execute(request, ConfirmEmailResponse);\r\n }\r\n\r\n public async checkInvite(request: CheckInviteRequest) {\r\n return await this.api.execute(request, CheckInviteResponse);\r\n }\r\n\r\n public async confirmInvite(request: ConfirmInviteRequest) {\r\n return await this.api.execute(request, ConfirmInviteResponse);\r\n }\r\n\r\n public async sendInvite(request: SendInviteRequest) {\r\n return await this.api.execute(request, SendInviteResponse);\r\n }\r\n\r\n public async forgotPassword(request: ForgotPasswordRequest) {\r\n return await this.api.execute(request, ForgotPasswordResponse);\r\n }\r\n\r\n public async loginToken(request: LoginTokenRequest) {\r\n return await this.api.execute(request, LoginTokenResponse);\r\n }\r\n\r\n public async loginAs(request: LoginAsRequest) {\r\n return await this.api.execute(request, LoginAsResponse);\r\n }\r\n\r\n public async prolongSession(request: ProlongSessionRequest) {\r\n return await this.api.execute(request, ProlongSessionResponse);\r\n }\r\n\r\n public async fetchContact(request: FetchContactRequest) {\r\n return await this.api.execute(request, FetchContactResponse);\r\n }\r\n\r\n public async fetchMe(request: FetchMeRequest) {\r\n return await this.api.execute(request, FetchMeResponse);\r\n }\r\n\r\n public async fetchEmailNotificationsSubscriptionStatus(request: FetchEmailNotificationsSubscriptionStatusRequest) {\r\n return await this.api.execute(request, FetchEmailNotificationsSubscriptionStatusResponse);\r\n }\r\n\r\n public async unsubscribeEmailNotifications(request: UnsubscribeEmailNotificationsRequest) {\r\n return await this.api.execute(request, UnsubscribeEmailNotificationsResponse);\r\n }\r\n}","import { HttpMethod, ApiRequest, ApiResponse, Optional, toOptional } from '@axl/accel-framework/api';\r\nimport { UserNotification } from '@axl/accel-framework/models';\r\nimport { type Moment } from 'moment';\r\n\r\nexport type SaveNotificationModel = {\r\n id: string;\r\n seenDate: Optional;\r\n}\r\n\r\nexport class SaveNotificationRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public url: string = '/notification';\r\n\r\n public body: SaveNotificationModel = {\r\n id: this.notification.id!,\r\n seenDate: toOptional(this.notification.seenDate),\r\n }\r\n\r\n constructor(public notification: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveNotificationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiListResponse, ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { UserNotification, UserNotificationFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n id,\r\n type,\r\n payloadJson,\r\n createdDate,\r\n seenDate,\r\n adminId,\r\n studentId,\r\n adminTaskId,\r\n courseItemId,\r\n libraryItemId,\r\n orderId,\r\n orderPaymentId,\r\n scenarioId,\r\n chatConversationId,\r\n courseId,\r\n libraryId,\r\n courseItemTaskId,\r\n schoolContentItemCommentId,\r\n }`;\r\n //TODO taskAnswerId\r\n public url: string = `/notification`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: UserNotificationFilter, fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchNotificationsResponse extends ApiListResponse {\r\n constructor(response: any) {\r\n super(response);\r\n this.items = this.body.items.map(UserNotification.fromJson);\r\n this.filter = new UserNotificationFilter(this.body.filter);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class DeleteNotificationRequest extends ApiRequest {\r\n public method = HttpMethod.DELETE;\r\n public url: string = `/notification/${this.id}`;\r\n\r\n constructor(public id: string) {\r\n super();\r\n }\r\n}\r\n\r\nexport class DeleteNotificationResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { UserNotificationSettings } from '@axl/accel-framework/models';\r\n\r\nexport class FetchNotificationSettingsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public fields = `{\r\n useEmail,\r\n email,\r\n customEmail,\r\n useTg,\r\n tgId,\r\n tgLink,\r\n channels {\r\n id,\r\n useSite,\r\n useEmail,\r\n useTg,\r\n notificationType,\r\n subscriptionId\r\n }\r\n }`;\r\n public url: string = `/notification/settings`;\r\n\r\n constructor(fields?: string) {\r\n super();\r\n this.fields = fields || this.fields;\r\n }\r\n}\r\n\r\nexport class FetchNotificationSettingsResponse extends ApiResponse {\r\n public settings: UserNotificationSettings;\r\n constructor(response: any) {\r\n super(response);\r\n this.settings = UserNotificationSettings.fromJson(this.body);\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod, Optional, toOptional } from '@axl/accel-framework/api';\r\nimport { UserNotificationSettings } from '@axl/accel-framework/models';\r\n\r\nexport type SaveNotificationSettingsModel = {\r\n useEmail: Optional;\r\n customEmail: Optional;\r\n useTg: Optional;\r\n}\r\n\r\nexport class SaveNotificationSettingsRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body: SaveNotificationSettingsModel = {\r\n useEmail: toOptional(this.settings.useEmail),\r\n customEmail: toOptional(this.settings.customEmail ?? undefined),\r\n useTg: toOptional(this.settings.useTg),\r\n }\r\n public url: string = `/notification/settings`;\r\n\r\n constructor(public settings: UserNotificationSettings) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveNotificationSettingsResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { FetchNotificationSettingsRequest, FetchNotificationSettingsResponse } from './types/fetch';\r\nimport { SaveNotificationSettingsRequest, SaveNotificationSettingsResponse } from './types/save';\r\n\r\nexport default class NotificationSettingsApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchNotificationSettingsRequest) {\r\n return await this.api.execute(request, FetchNotificationSettingsResponse);\r\n }\r\n\r\n public async save(request: SaveNotificationSettingsRequest) {\r\n return await this.api.execute(request, SaveNotificationSettingsResponse);\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\nimport { UserNotificationFilter } from '@axl/accel-framework/models';\r\n\r\nexport class FetchCountNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.GET;\r\n public url: string = `/notification/count`;\r\n public body = {\r\n ...this.filter,\r\n }\r\n\r\n constructor(public filter?: UserNotificationFilter) {\r\n super();\r\n }\r\n}\r\n\r\nexport class FetchCountNotificationsResponse extends ApiResponse {\r\n public count: number;\r\n constructor(response: any) {\r\n super(response);\r\n this.count = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { HttpMethod } from '@axl/accel-framework/api';\r\n\r\nexport class MarkAllAsReadNotificationsRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = `/notification/markAllAsRead`;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\nexport class MarkAllAsReadNotificationsResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import { HttpMethod, ApiRequest, ApiResponse } from '@axl/accel-framework/api';\r\nimport { UserNotificationType } from '@axl/accel-framework/models';\r\n\r\ntype CreateNotificationChannelModel = {\r\n notificationType: UserNotificationType;\r\n useSite: boolean;\r\n useEmail: boolean;\r\n useTg: boolean;\r\n}\r\n\r\nexport class CreateNotificationChannelRequest extends ApiRequest {\r\n public method = HttpMethod.POST;\r\n public url: string = '/notification/channel';\r\n\r\n constructor(public model: CreateNotificationChannelModel) {\r\n super();\r\n this.body = model;\r\n }\r\n}\r\n\r\nexport class CreateNotificationChannelResponse extends ApiResponse {\r\n public id: string;\r\n constructor(response: any) {\r\n super(response);\r\n this.id = this.body;\r\n }\r\n}","import { ApiRequest, ApiResponse, HttpMethod, Optional, toOptional } from '@axl/accel-framework/api';\r\nimport { UserNotificationChannel } from '@axl/accel-framework/models';\r\n\r\nexport type SaveNotificationChannelModel = {\r\n id: string;\r\n useSite: Optional;\r\n useEmail: Optional;\r\n useTg: Optional;\r\n}\r\n\r\nexport class SaveNotificationChannelRequest extends ApiRequest {\r\n public method = HttpMethod.PUT;\r\n public body: SaveNotificationChannelModel = {\r\n id: this.id,\r\n useSite: toOptional(this.changes.useSite),\r\n useEmail: toOptional(this.changes.useEmail),\r\n useTg: toOptional(this.changes.useTg),\r\n }\r\n public url: string = `/notification/channel`;\r\n\r\n constructor(public id: string, public changes: Partial) {\r\n super();\r\n }\r\n}\r\n\r\nexport class SaveNotificationChannelResponse extends ApiResponse {\r\n constructor(response: any) {\r\n super(response);\r\n }\r\n}","import Api from 'api';\r\nimport { CreateNotificationChannelRequest, CreateNotificationChannelResponse } from './types/create';\r\nimport { SaveNotificationChannelRequest, SaveNotificationChannelResponse, } from './types/save';\r\n\r\nexport default class NotificationChannelApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async create(request: CreateNotificationChannelRequest) {\r\n return await this.api.execute(request, CreateNotificationChannelResponse);\r\n }\r\n\r\n public async save(request: SaveNotificationChannelRequest) {\r\n return await this.api.execute(request, SaveNotificationChannelResponse);\r\n }\r\n}","import { SaveNotificationRequest, SaveNotificationResponse } from './types/save';\r\nimport { FetchNotificationsRequest, FetchNotificationsResponse } from './types/fetch';\r\nimport Api from 'api';\r\nimport { DeleteNotificationRequest, DeleteNotificationResponse } from './types/delete';\r\nimport NotificationSettingsApi from './Settings';\r\nimport { FetchCountNotificationsRequest, FetchCountNotificationsResponse } from './types/fetch-count';\r\nimport { MarkAllAsReadNotificationsRequest, MarkAllAsReadNotificationsResponse } from './types/mark-all-as-read';\r\nimport NotificationChannelApi from './Channel';\r\n\r\nexport default class NotificationApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n public async fetch(request: FetchNotificationsRequest) {\r\n return await this.api.execute(request, FetchNotificationsResponse);\r\n }\r\n\r\n public async save(request: SaveNotificationRequest) {\r\n return await this.api.execute(request, SaveNotificationResponse);\r\n }\r\n\r\n public async delete(request: DeleteNotificationRequest) {\r\n return await this.api.execute(request, DeleteNotificationResponse);\r\n }\r\n\r\n public async fetchCount(request: FetchCountNotificationsRequest) {\r\n return await this.api.execute(request, FetchCountNotificationsResponse);\r\n }\r\n\r\n public async markAllAsRead(request: MarkAllAsReadNotificationsRequest) {\r\n return await this.api.execute(request, MarkAllAsReadNotificationsResponse);\r\n }\r\n\r\n public settings = new NotificationSettingsApi(this.api);\r\n public channel = new NotificationChannelApi(this.api);\r\n}","import Api from 'api';\r\nimport { BaseFilter, PartnershipMember, PartnershipOffer, PartnershipTransaction, PartnershipTransactionFilter, PartnershipTransactionRequest, PurchaseOrder } from '@axl/accel-framework/models';\r\nimport { CrudApi } from '@axl/accel-framework/api';\r\nimport { UtmTag } from 'components/selects/UtmTagSelect/UtmTagSelect';\r\n\r\nexport type TotalItem = {\r\n value: number;\r\n type: string;\r\n valueType: 'value' | 'currency' | 'percent'\r\n}\r\n\r\nexport default class PartnershipApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n member = new MemberApi(this.api);\r\n transaction = new TransactionApi(this.api);\r\n transactionRequest = new TransactionRequestApi(this.api);\r\n offer = new OfferApi(this.api);\r\n order = new PartnershipOrderApi(this.api);\r\n utm = new UtmTagApi(this.api);\r\n\r\n fetchTotals = (filter: PartnershipTotalsFilter) => this.api.post<{ items: TotalItem[] }>('/partnership/totals', { filter }, json => ({ items: json.items }))\r\n fetchMaxAmount = () => this.api.get('/partnership/max-amount');\r\n}\r\n\r\nexport class PartnershipTotalsFilter extends BaseFilter {\r\n constructor(filter?: Partial) {\r\n super();\r\n if (filter) this.update(filter);\r\n }\r\n\r\n dateFrom: moment.Moment | null;\r\n dateTo: moment.Moment | null;\r\n\r\n utmSources: string[] = [];\r\n utmMediums: string[] = [];\r\n utmCampaigns: string[] = [];\r\n utmTerms: string[] = [];\r\n utmContents: string[] = [];\r\n\r\n get hasChanges() {\r\n return this.dateFrom != null\r\n || this.dateTo != null\r\n || this.utmSources.length > 0\r\n || this.utmMediums.length > 0\r\n || this.utmCampaigns.length > 0\r\n || this.utmTerms.length > 0\r\n || this.utmContents.length > 0;\r\n }\r\n\r\n update(changes: Partial) {\r\n super.update(changes);\r\n }\r\n}\r\n\r\n\r\nexport type PartnershipTransactionTotals = {\r\n depositAmount: number;\r\n pendingAmount: number;\r\n withdrawalAmount: number;\r\n requestedAmount: number;\r\n}\r\nexport class TransactionApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/transaction',\r\n parse: e => PartnershipTransaction.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n createdDate,\r\n amount,\r\n fee,\r\n comment,\r\n partner{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n },\r\n student{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n },\r\n type,\r\n order{\r\n id,\r\n number\r\n },\r\n validAfterDate,\r\n level,\r\n levelPartner{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n }\r\n }`\r\n });\r\n }\r\n\r\n fetchTotals = (filter?: PartnershipTransactionFilter) => this.api.post<{ items: TotalItem[] }>(this.settings.endpoint + '/totals', { filter }, json => ({ items: json.items }));\r\n}\r\n\r\n\r\nexport class MemberApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/member',\r\n parse: e => PartnershipMember.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n acceptedDate\r\n }`\r\n });\r\n }\r\n accept = () => this.api.put(this.settings.endpoint, { accepted: true });\r\n}\r\n\r\nexport class OfferApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/offer',\r\n parse: e => PartnershipOffer.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n title,\r\n url,\r\n urlsJson,\r\n description,\r\n fee,\r\n feeType,\r\n productType,\r\n levels,\r\n productLinks{\r\n product{\r\n id,\r\n name,\r\n }\r\n }\r\n }`\r\n });\r\n }\r\n}\r\n\r\nexport class PartnershipOrderApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/order',\r\n parse: e => PurchaseOrder.fromJson(e),\r\n });\r\n }\r\n}\r\n\r\nexport class TransactionRequestApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/transaction/request',\r\n parse: e => PartnershipTransactionRequest.fromJson(e),\r\n defaultFields: `{\r\n id,\r\n amount,\r\n partnerComment,\r\n adminComment,\r\n status,\r\n createdDate,\r\n partner{\r\n id,\r\n firstName,\r\n lastName,\r\n email\r\n },\r\n }`\r\n });\r\n }\r\n}\r\n\r\n//@ts-ignore\r\nexport class UtmTagApi extends CrudApi {\r\n constructor(api: Api) {\r\n super(api, {\r\n endpoint: '/partnership/utm',\r\n parse: e => e,\r\n });\r\n }\r\n}","import { Announcement } from '@axl/accel-framework/models';\r\nimport Api from 'api';\r\n\r\nexport default class AnnouncementApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n fetch = async () => {\r\n return await this.api.get(`/announcement`,\r\n '',\r\n json => json.map((item: any) => Announcement.fromJson(item)));\r\n }\r\n close = async (id: string) => {\r\n return await this.api.post(`/announcement/close`, { id });\r\n }\r\n}","import { Api } from \"@axl/accel-framework\";\r\nimport { CrudApi } from \"@axl/accel-framework/api\";\r\nimport { GamificationAchievement, GamificationAchievementFilter, GamificationLeader, GamificationLeaderFilter, GamificationProduct, GamificationProductFilter, GamificationTransaction } from \"@axl/accel-framework/models\";\r\nimport { AnalyticsItem } from \"models\";\r\n\r\nexport default class GamificationApi {\r\n constructor(private api: Api) {\r\n }\r\n\r\n fetchTotals = () => this.api.get<{ items: AnalyticsItem[] }>('/gamification/totals');\r\n fetchBalance = () => this.api.get('/gamification/balance');\r\n\r\n fetchAchievements = (filter: GamificationAchievementFilter) => this.api.getList('/gamification/achievement', undefined, filter,\r\n body => ({\r\n items: body.items.map(GamificationAchievement.fromJson),\r\n filter: new GamificationAchievementFilter(body.filter)\r\n }));\r\n\r\n fetchLeaders = (filter: GamificationLeaderFilter) => this.api.getList('/gamification/leaders', undefined, filter,\r\n body => ({\r\n items: body.items.map(GamificationLeader.fromJson),\r\n filter: new GamificationLeaderFilter(body.filter),\r\n }));\r\n\r\n product = new GamificationProductApi(this.api);\r\n transaction = new GamificationTransactionApi(this.api);\r\n}\r\n\r\nexport class GamificationProductApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/gamification/product',\r\n parse: e => GamificationProduct.fromJson(e),\r\n defaultFields: ``\r\n });\r\n }\r\n\r\n pay = (id: string) => this.api.post(this.settings.endpoint, { productId: id });\r\n}\r\n\r\nexport class GamificationTransactionApi extends CrudApi {\r\n constructor(private api: Api) {\r\n super(api, {\r\n endpoint: '/gamification/transaction',\r\n parse: e => GamificationTransaction.fromJson(e),\r\n defaultFields: ``\r\n });\r\n }\r\n}","import BaseApi, { ApiClient, FileApi, FileManagerApi, LocalizationApi } from '@axl/accel-framework/api';\r\nimport StudentCourseApi from './methods/student/student-course';\r\nimport SchoolCourseApi from './methods/school-course';\r\nimport StudentCourseItemApi from './methods/student/student-course-item';\r\nimport SchoolSettingsApi from './methods/school-settings/types/index';\r\nimport StudentApi from './methods/student/student';\r\nimport ServiceApi from './methods/service';\r\nimport CoursePreviewApi from './methods/course-preview';\r\nimport StudentCoursePreviewApi from './methods/student-course-preview';\r\nimport ForumApi from './methods/forum';\r\nimport StudentEmailBroadcastApi from './methods/student/email-broadcast';\r\nimport SchoolLibraryApi from './methods/school-library';\r\nimport CourseItemRatingApi from './methods/student/course-item-rating';\r\nimport CourseItemCommentApi from './methods/student/course-item-comment';\r\nimport AuthApi from './methods/auth';\r\nimport NotificationApi from './methods/Notification';\r\nimport PartnershipApi from './methods/partnership';\r\nimport { SchoolContentItem, SchoolContentItemFilter } from 'models';\r\nimport AnnouncementApi from './methods/announcement';\r\nimport GamificationApi from './methods/gamification';\r\n\r\nexport default class Api extends BaseApi {\r\n constructor(client: ApiClient) {\r\n super(client);\r\n }\r\n\r\n file: FileApi = new FileApi(this);\r\n fileManager: FileManagerApi = new FileManagerApi(this);\r\n loc: LocalizationApi = new LocalizationApi(this);\r\n auth = new AuthApi(this);\r\n student = new StudentApi(this);\r\n\r\n schoolContent = {\r\n fetch: (filter: SchoolContentItemFilter) => this.getList('/school-content-item', '', filter,\r\n (json: any) => {\r\n return {\r\n items: json.items.map(SchoolContentItem.fromJson),\r\n filter: new SchoolContentItemFilter(json.filter)\r\n }\r\n })\r\n }\r\n\r\n studentCourse = new StudentCourseApi(this);\r\n schoolCourses = new SchoolCourseApi(this);\r\n schoolLibraries = new SchoolLibraryApi(this);\r\n studentEmailBroadcast = new StudentEmailBroadcastApi(this);\r\n studentCourseItem = new StudentCourseItemApi(this);\r\n courseItemRating = new CourseItemRatingApi(this);\r\n courseItemComment = new CourseItemCommentApi(this);\r\n schoolSettings = new SchoolSettingsApi(this);\r\n service = new ServiceApi(this);\r\n coursePreview = new CoursePreviewApi(this);\r\n studentCoursePreview = new StudentCoursePreviewApi(this);\r\n forum = new ForumApi(this);\r\n notification = new NotificationApi(this);\r\n partnership = new PartnershipApi(this);\r\n announcement = new AnnouncementApi(this);\r\n gamification = new GamificationApi(this);\r\n}","import { ApiRequest, ApiResponse, ApiResult, HttpApiClient } from '@axl/accel-framework/api';\r\nimport { HttpStatusCode } from '@axl/accel-framework/enums';\r\nimport { HubClient } from '@axl/accel-framework/hub-client';\r\nimport { FetchMeRequest, FetchMeResponse } from 'api/methods/auth/types/me';\r\nimport { RefreshTokenRequest, RefreshTokenResponse } from 'api/methods/auth/types/refresh-token';\r\nimport { UserStore } from 'stores';\r\n\r\nexport default class JwtApiClient extends HttpApiClient {\r\n private readonly MaxAttempts = 3;\r\n\r\n constructor(apiUrl: string,\r\n private userStore: UserStore,\r\n private hub: HubClient) {\r\n super(apiUrl);\r\n }\r\n\r\n buildHeaders(request: ApiRequest) {\r\n const headers: any = {\r\n 'Content-Type': 'application/json',\r\n 'X-Timezone-Offset': new Date().getTimezoneOffset()\r\n };\r\n if (!request.authorized)\r\n return headers;\r\n if (this.userStore.accessToken)\r\n headers['Authorization'] = `Bearer ${this.userStore.accessToken}`;\r\n if (this.hub.connectionId)\r\n headers['ConnectionId'] = this.hub.connectionId;\r\n return headers;\r\n }\r\n\r\n public async execute(request: ApiRequest, ResponseType: ({ new(json: any): T }) | undefined = undefined, attempt = 1): Promise> {\r\n let result = await this.processRequest(request, ResponseType);\r\n if (request.authorized) {\r\n // 401 - refresh tokens and repeat request\r\n if (result.status == HttpStatusCode.Unauthorized) {\r\n if (attempt == this.MaxAttempts || !await this.refreshTokens())\r\n return result;\r\n // repeat prev request\r\n result = await this.execute(request, ResponseType, attempt + 1);\r\n } else\r\n // e.g. access token is expired => refresh tokens\r\n if (result.response.resetToken)\r\n await this.refreshTokens();\r\n }\r\n if (result.response.hasTokens) {\r\n this.userStore.updateTokens(result.response.accessToken, result.response.refreshToken);\r\n\r\n if (request.autoUpdateUser)\r\n // it is important to refresh the user after every token change\r\n await this.fetchMe();\r\n }\r\n return result;\r\n }\r\n\r\n private async refreshTokens(): Promise {\r\n const result = await this.execute(new RefreshTokenRequest(this.userStore.refreshToken!), RefreshTokenResponse);\r\n if (!result.success) {\r\n this.userStore.reset();\r\n return false;\r\n }\r\n return result.success;\r\n }\r\n\r\n private async fetchMe(): Promise {\r\n const result = await this.execute(new FetchMeRequest(), FetchMeResponse);\r\n if (result.success)\r\n this.userStore.updateUser(result.response.student);\r\n return result.success;\r\n }\r\n}\r\n","import { computed, observable, action } from 'mobx';\r\nimport { TokenStore } from '@axl/accel-framework/stores';\r\nimport { Student } from 'models';\r\nimport { AuthCookieClient, JwtDecoder } from '@axl/accel-framework/utils';\r\n\r\nexport default class UserStore extends TokenStore {\r\n\r\n constructor(jwtDecoder: JwtDecoder,\r\n cookieClient: AuthCookieClient) {\r\n super(jwtDecoder, cookieClient);\r\n }\r\n\r\n @observable currentUser: Student;\r\n @action updateUser(user: Student) {\r\n this.currentUser = user;\r\n }\r\n\r\n @observable gamificationScore: number;\r\n @action setGamificationBalance(score: number) {\r\n this.gamificationScore = score;\r\n }\r\n\r\n /**\r\n * isAuthenticated & current user fetched\r\n */\r\n @computed get isAuthorized() {\r\n return this.isAuthenticated && this.currentUser != null;\r\n }\r\n\r\n /**\r\n * has an access token\r\n */\r\n @computed get isAuthenticated() {\r\n return this.decodedAccessToken != null;\r\n }\r\n\r\n @action reset() {\r\n this.clearTokens();\r\n // @ts-ignore\r\n this.currentUser = null;\r\n }\r\n}","import { inject } from 'react-ioc';\r\nimport Api from 'api';\r\nimport { ContactInFilterRequest } from 'api/methods/service/types/contact-in-filter';\r\nimport { RunCustomEventRequest, RunCustomEventRequestModel } from 'api/methods/service/types/run-custom-event';\r\nimport { UpdateLocalizationRequest } from 'api/methods/service/types/update-localization';\r\nimport { LocalizationStore } from '@axl/accel-framework/stores';\r\nimport UserStore from 'stores/UserStore/UserStore';\r\nimport { RefreshTokenRequest } from 'api/methods/auth/types/refresh-token';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\nimport { FetchMeRequest } from 'api/methods/auth/types/me';\r\nimport { KeepaliveRequest } from 'api/methods/service/types/keepalive';\r\nimport { SelectLangRequest } from 'api/methods/student/student/types/select-lang';\r\nimport { ProlongSessionRequest } from 'api/methods/auth/types/prolong-session';\r\n\r\nexport default class ServiceStore {\r\n\r\n constructor(private api: Api,\r\n private locStore: LocalizationStore,\r\n private userStore: UserStore) {\r\n this.api = api || inject(this, Api);\r\n this.locStore = locStore || inject(this, LocalizationStore);\r\n this.userStore = userStore || inject(this, UserStore);\r\n }\r\n\r\n async runCustomEvent(model: Partial) {\r\n const result = await this.api.service.runCustomEvent(new RunCustomEventRequest(model));\r\n return result.success;\r\n }\r\n\r\n async contactInFilter(contactId: string, filterId: string) {\r\n const result = await this.api.service.contactInFilter(new ContactInFilterRequest(filterId, contactId));\r\n if (result.response.isInFilter == true) return true;\r\n return false;\r\n }\r\n\r\n async updateLocalization(reloadPageIfSuccess: boolean = true) {\r\n const result = await this.api.service.updateLocalization(new UpdateLocalizationRequest());\r\n if (result.success) {\r\n this.locStore.clear();\r\n if (reloadPageIfSuccess)\r\n document.location.reload();\r\n }\r\n return result;\r\n }\r\n\r\n async refreshTokens() {\r\n if (!this.userStore.refreshToken)\r\n return false;\r\n const result = await this.api.auth.refreshToken(new RefreshTokenRequest(this.userStore.refreshToken));\r\n return result.success;\r\n }\r\n\r\n async updateUser() {\r\n const result = await this.api.auth.fetchMe(new FetchMeRequest());\r\n if (result.success)\r\n this.userStore.updateUser(result.response.student);\r\n return result.success;\r\n }\r\n\r\n async keepAlive() {\r\n if (!this.userStore.refreshToken)\r\n return false;\r\n const result = await this.api.service.keepalive(new KeepaliveRequest());\r\n return result.success;\r\n }\r\n\r\n async selectLang(lang: Lang): Promise {\r\n const result = await this.api.student.selectLang(new SelectLangRequest(lang));\r\n return result.success;\r\n }\r\n\r\n async prolongSession() {\r\n if (!this.userStore.refreshToken)\r\n return false;\r\n const result = await this.api.auth.prolongSession(new ProlongSessionRequest(this.userStore.refreshToken));\r\n return result.success;\r\n }\r\n}","import { observable, action, computed } from 'mobx';\r\nimport { inject } from 'react-ioc';\r\nimport { Lang } from '@axl/accel-framework/enums';\r\nimport { DeviceStore } from '@axl/accel-framework/stores';\r\nimport { LangDetector } from '@axl/accel-framework/utils';\r\nimport type { IEZChatController, IEZPhoneController } from '@axl/ez-chat';\r\n\r\nexport default class UIStore {\r\n @observable isMenuCollapsed: boolean;\r\n @action async toggleMenu() {\r\n this.isMenuCollapsed = !this.isMenuCollapsed;\r\n }\r\n\r\n @observable isEmailConfirmationModalVisible: boolean = false;\r\n @action setIsEmailConfirmationModalVisible(val: boolean) { this.isEmailConfirmationModalVisible = val; }\r\n\r\n @observable isPhoneConfirmationModalVisible: boolean = false;\r\n @action setIsPhoneConfirmationModalVisible(val: boolean) { this.isPhoneConfirmationModalVisible = val; }\r\n\r\n @observable isProfileDrawerVisible: boolean = false;\r\n @observable defaultProfileTab: 'common' | 'notifications' | 'bonus' = 'common';\r\n @action setIsProfileDrawerVisible(val: boolean, defaultTab?: UIStore['defaultProfileTab']) {\r\n this.isProfileDrawerVisible = val;\r\n this.defaultProfileTab = defaultTab ?? 'common';\r\n }\r\n\r\n @computed get isMobile() {\r\n return this.deviceStore.width <= 600;\r\n }\r\n\r\n @computed get deviceSize() {\r\n return this.deviceStore.size;\r\n }\r\n\r\n get device() {\r\n return this.deviceStore;\r\n }\r\n\r\n constructor(private langDetector: LangDetector,\r\n private deviceStore: DeviceStore) {\r\n this.langDetector = langDetector || inject(this, LangDetector);\r\n this.deviceStore = deviceStore || inject(this, DeviceStore);\r\n this.isMenuCollapsed = this.deviceSize != 'desktop';\r\n }\r\n\r\n\r\n\r\n @computed get dateFormat(): string {\r\n switch (this.langDetector.lang) {\r\n case Lang.en: return 'DD MMMM YYYY';\r\n case Lang.ru: return 'DD MMMM YYYY';\r\n default: return 'DD MMMM YYYY';\r\n }\r\n }\r\n\r\n @computed get dateTimeFormat(): string {\r\n return `${this.dateFormat} HH:mm`;\r\n }\r\n\r\n getDateTimeFormat(includeTime: boolean = true, includeSeconds: boolean = false): string {\r\n let format = this.dateFormat;\r\n if (includeTime)\r\n format = `${format} ${this.dateTimeFormat}`;\r\n if (includeSeconds) format += ':ss';\r\n return format;\r\n }\r\n\r\n @observable chatController: IEZChatController;\r\n @action setChatController(chatController: IEZChatController) {\r\n this.chatController = chatController;\r\n }\r\n\r\n @observable phoneController: IEZPhoneController;\r\n @action setPhoneController(phoneController: IEZPhoneController) {\r\n this.phoneController = phoneController;\r\n }\r\n}","import { runInAction } from 'mobx';\r\nimport { observable, action, computed } from 'mobx';\r\nimport { inject } from 'react-ioc';\r\nimport Api from 'api';\r\nimport { FetchSchoolSettingsRequest } from 'api/methods/school-settings/types/fetch-school-settings';\r\nimport { School } from 'models';\r\n\r\nexport default class SchoolStore {\r\n @observable ready: boolean = false;\r\n @observable school: School;\r\n\r\n constructor(private api: Api) {\r\n this.api = api || inject(this, Api);\r\n }\r\n\r\n @computed get hasUserFooter() {\r\n return this.school.settings.isPageFooterEnabled;\r\n }\r\n\r\n @action async fetchSchool() {\r\n this.ready = false;\r\n const result = await this.api.schoolSettings.fetch(new FetchSchoolSettingsRequest());\r\n if (result.success)\r\n runInAction(() => {\r\n this.school = result.response.school;\r\n this.ready = true;\r\n });\r\n }\r\n}\r\n","/**\n * @remix-run/router v1.14.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation() {\n return entries[index];\n }\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n function createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n let history = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 1\n });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation,\n delta: 0\n });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: nextLocation,\n delta\n });\n }\n },\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n return createLocation(\"\", {\n pathname,\n search,\n hash\n },\n // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n function validateHashLocation(location, to) {\n warning(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location, index) {\n return {\n usr: location.state,\n key: location.key,\n idx: index\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nfunction parsePath(path) {\n let parsedPath = {};\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n if (path) {\n parsedPath.pathname = path;\n }\n }\n return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n let index = getIndex();\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState(_extends({}, globalHistory.state, {\n idx: index\n }), \"\");\n }\n function getIndex() {\n let state = globalHistory.state || {\n idx: null\n };\n return state.idx;\n }\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({\n action,\n location: history.location,\n delta\n });\n }\n }\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 1\n });\n }\n }\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location,\n delta: 0\n });\n }\n }\n function createURL(to) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n }\n let history = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n }\n };\n return history;\n}\n//#endregion\n\nvar ResultType;\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\nconst immutableRouteKeys = new Set([\"lazy\", \"caseSensitive\", \"path\", \"id\", \"index\", \"children\"]);\nfunction isIndexRoute(route) {\n return route.index === true;\n}\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties, parentPath, manifest) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n if (manifest === void 0) {\n manifest = {};\n }\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!manifest[id], \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, mapRouteProperties(route), {\n id\n });\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, mapRouteProperties(route), {\n id,\n children: undefined\n });\n manifest[id] = pathOrLayoutRoute;\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(route.children, mapRouteProperties, treePath, manifest);\n }\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n if (pathname == null) {\n return null;\n }\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname));\n }\n return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n routes.forEach((route, index) => {\n var _route$path;\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments;\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = [];\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\")));\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n // for absolute paths, ensure `/` instead of empty segment\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = s => s === \"*\";\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n if (index) {\n initialScore += indexRouteValue;\n }\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ?\n // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] :\n // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n const stringify = p => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n const segments = path.split(/\\/+/).map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\";\n // Apply the splat\n return stringify(params[star]);\n }\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key];\n invariant(optional === \"?\" || param != null, \"Missing \\\":\" + key + \"\\\" param\");\n return stringify(param);\n }\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter(segment => !!segment);\n return prefix + segments.join(\"/\");\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n let [matcher, compiledParams] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = compiledParams.reduce((memo, _ref, index) => {\n let {\n paramName,\n isOptional\n } = _ref;\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n if (end === void 0) {\n end = true;\n }\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let params = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:([\\w-]+)(\\?)?/g, (_, paramName, isOptional) => {\n params.push({\n paramName,\n isOptional: isOptional != null\n });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n if (path.endsWith(\"*\")) {\n params.push({\n paramName: \"*\"\n });\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, params];\n}\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nfunction getResolveToMatches(matches, v7_relativeSplatPath) {\n let pathMatches = getPathContributingMatches(matches);\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) => idx === matches.length - 1 ? match.pathname : match.pathnameBase);\n }\n return pathMatches.map(match => match.pathnameBase);\n}\n/**\n * @private\n */\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n let to;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from;\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n to.pathname = toSegments.join(\"/\");\n }\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n let path = resolvePath(to, from);\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n return path;\n}\n/**\n * @private\n */\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data, responseInit) {\n this.pendingKeysSet = new Set();\n this.subscribers = new Set();\n this.deferredKeys = [];\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\");\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n this.init = responseInit;\n }\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, undefined, data), error => this.onSettle(promise, key, error));\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n this.pendingKeysSet.delete(key);\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\"Deferred data for key \\\"\" + key + \"\\\" resolved/rejected with `undefined`, \" + \"you must resolve/reject with a value or `null`.\");\n Object.defineProperty(promise, \"_error\", {\n get: () => undefinedError\n });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n this.emit(false, key);\n return Promise.reject(error);\n }\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n this.emit(false, key);\n return data;\n }\n emit(aborted, settledKey) {\n this.subscribers.forEach(subscriber => subscriber(aborted, settledKey));\n }\n subscribe(fn) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n async resolveData(signal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref3) => {\n let [key, value] = _ref3;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\nconst defer = function defer(data, init) {\n if (init === void 0) {\n init = {};\n }\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n return new DeferredData(data, responseInit);\n};\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nconst redirectDocument = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nclass ErrorResponseImpl {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nfunction isRouteErrorResponse(error) {\n return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n};\nconst IDLE_BLOCKER = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined\n};\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nconst defaultMapRouteProperties = route => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Create a router and listen to history POP navigations\n */\nfunction createRouter(init) {\n const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : undefined;\n const isBrowser = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let mapRouteProperties;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Routes keyed by ID\n let manifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(init.routes, mapRouteProperties, undefined, manifest);\n let inFlightDataRoutes;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future = _extends({\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false\n }, init.future);\n // Cleanup function for history\n let unlistenHistory = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors = null;\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n let initialized;\n let hasLazyRoutes = initialMatches.some(m => m.route.lazy);\n let hasLoaders = initialMatches.some(m => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(m => m.route.loader && m.route.loader.hydrate !== true && (loaderData && loaderData[m.route.id] !== undefined || errors && errors[m.route.id] !== undefined));\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map(),\n blockers: new Map()\n };\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction = Action.Pop;\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n // AbortController for the active navigation\n let pendingNavigationController;\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions = new Map();\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener = null;\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes = [];\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads = [];\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location,\n delta\n } = _ref;\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n warning(blockerFunctions.size === 0 || delta != null, \"You are trying to use a blocker on a POP navigation to a location \" + \"that was not created by @remix-run/router. This will fail silently in \" + \"production. This can happen if you are navigating outside the router \" + \"via `window.history.pushState`/`window.location.hash` instead of using \" + \"router navigation APIs. This can also happen if you are using \" + \"createHashRouter and the user manually changes the URL.\");\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction\n });\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return startNavigation(historyAction, location);\n });\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location, {\n initialHydration: true\n });\n }\n return router;\n }\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n // Subscribe to state updates for the router\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n // Update our state and notify the calling context of the change\n function updateState(newState, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state = _extends({}, state, newState);\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers = [];\n let deletedFetchersKeys = [];\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach(subscriber => subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true\n }));\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach(key => state.fetchers.delete(key));\n deletedFetchersKeys.forEach(key => deleteFetcher(key));\n }\n }\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(location, newState, _temp) {\n var _location$state, _location$state2;\n let {\n flushSync\n } = _temp === void 0 ? {} : _temp;\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && ((_location$state2 = location.state) == null ? void 0 : _location$state2._isRedirect) !== true;\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n }\n let viewTransitionOpts;\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === Action.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location\n };\n }\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset,\n blockers\n }), {\n viewTransitionOpts,\n flushSync: flushSync === true\n });\n // Reset stateful navigation vars\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, to, future.v7_relativeSplatPath, opts == null ? void 0 : opts.fromRouteId, opts == null ? void 0 : opts.relative);\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, false, normalizedPath, opts);\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = _extends({}, nextLocation, init.history.encodeLocation(nextLocation));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey, IDLE_BLOCKER);\n updateState({\n blockers\n });\n }\n });\n return;\n }\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync\n });\n }\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n });\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n }\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n }\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n }, {\n flushSync\n });\n return;\n }\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a
\n // which will default to a navigation to /page\n if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n completeNavigation(location, {\n matches\n }, {\n flushSync\n });\n return;\n }\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(init.history, location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace,\n flushSync\n });\n if (actionOutput.shortCircuited) {\n return;\n }\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // Create a GET request for the loaders\n request = new Request(request.url, {\n signal: request.signal\n });\n }\n // Call loaders\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.fetcherSubmission, opts && opts.replace, opts && opts.initialHydration === true, flushSync, pendingActionData, pendingError);\n if (shortCircuited) {\n return;\n }\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n }\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(request, location, submission, matches, opts) {\n if (opts === void 0) {\n opts = {};\n }\n interruptActiveLoads();\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({\n navigation\n }, {\n flushSync: opts.flushSync === true\n });\n // Call our action and get the result\n let result;\n let actionMatch = getTargetMatch(matches, location);\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n if (isRedirectResult(result)) {\n let replace;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n }\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(request, location, matches, overrideNavigation, submission, fetcherSubmission, replace, initialHydration, flushSync, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, activeSubmission, location, future.v7_partialHydration && initialHydration === true, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError);\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId));\n pendingNavigationLoadId = ++incrementingLoadId;\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, updatedFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n return {\n shortCircuited: true\n };\n }\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (!isUninterruptedRevalidation && (!future.v7_partialHydration || !initialHydration)) {\n revalidatingFetchers.forEach(rf => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(undefined, fetcher ? fetcher.data : undefined);\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}), {\n flushSync\n });\n }\n revalidatingFetchers.forEach(rf => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(f => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n }\n revalidatingFetchers.forEach(rf => fetchControllers.delete(rf.key));\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, {\n replace\n });\n return {\n shortCircuited: true\n };\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n return _extends({\n loaderData,\n errors\n }, shouldUpdateFetchers ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(state.location, state.matches, basename, future.v7_prependBasename, href, future.v7_relativeSplatPath, routeId, opts == null ? void 0 : opts.relative);\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: normalizedPath\n }), {\n flushSync\n });\n return;\n }\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(future.v7_normalizeFormMethod, true, normalizedPath, opts);\n if (error) {\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n let match = getTargetMatch(matches, path);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, flushSync, submission);\n return;\n }\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, {\n routeId,\n path\n });\n handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission);\n }\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(key, routeId, path, match, requestMatches, flushSync, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error, {\n flushSync\n });\n return;\n }\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync\n });\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission\n });\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, {\n type: \"defer-action\"\n });\n }\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(init.history, nextLocation, abortController.signal);\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(init.history, state, matches, submission, nextLocation, false, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, {\n [match.route.id]: actionResult.data\n }, undefined // No need to send through errors since we short circuit above\n );\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers.filter(rf => rf.key !== key).forEach(rf => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(undefined, existingFetcher ? existingFetcher.data : undefined);\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach(rf => abortFetcher(rf.key));\n abortController.signal.addEventListener(\"abort\", abortPendingFetchRevalidations);\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n if (abortController.signal.aborted) {\n return;\n }\n abortController.signal.removeEventListener(\"abort\", abortPendingFetchRevalidations);\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(r => fetchControllers.delete(r.key));\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey = revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n // Process and commit output from loaders\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n abortStaleFetchLoads(loadId);\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors),\n fetchers: new Map(state.fetchers)\n });\n isRevalidationRequired = false;\n }\n }\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(key, routeId, path, match, matches, flushSync, submission) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getLoadingFetcher(submission, existingFetcher ? existingFetcher.data : undefined), {\n flushSync\n });\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(init.history, path, abortController.signal);\n fetchControllers.set(key, abortController);\n let originatingLoadId = incrementingLoadId;\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n }\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n if (fetchRequest.signal.aborted) {\n return;\n }\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(state, redirect, _temp2) {\n let {\n submission,\n fetcherSubmission,\n replace\n } = _temp2 === void 0 ? {} : _temp2;\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true\n });\n invariant(redirectLocation, \"Expected a location on the redirect navigation\");\n if (isBrowser) {\n let isDocumentReload = false;\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push;\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let {\n formMethod,\n formAction,\n formEncType\n } = state.navigation;\n if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, activeSubmission, {\n formAction: redirect.location\n }),\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(redirectLocation, submission);\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset\n });\n }\n }\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath)), ...fetchersToLoad.map(f => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\"loader\", createClientSideRequest(init.history, f.path, f.controller.signal), f.match, f.matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath);\n } else {\n let error = {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path\n })\n };\n return error;\n }\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, loaderResults.map(() => request.signal), false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(f => f.match), fetcherResults, fetchersToLoad.map(f => f.controller ? f.controller.signal : null), true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n function updateFetcherState(key, fetcher, opts) {\n if (opts === void 0) {\n opts = {};\n }\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function setFetcherError(key, routeId, error, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n }, {\n flushSync: (opts && opts.flushSync) === true\n });\n }\n function getFetcher(key) {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n function deleteFetcher(key) {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n function deleteFetcherAndUpdateState(key) {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n function markFetchRedirectsDone() {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n function getBlocker(key, fn) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n return blocker;\n }\n function deleteBlocker(key) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key, newBlocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\", \"Invalid blocker state transition: \" + blocker.state + \" -> \" + newBlocker.state);\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({\n blockers\n });\n }\n function shouldBlockNavigation(_ref2) {\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = _ref2;\n if (blockerFunctions.size === 0) {\n return;\n }\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({\n currentLocation,\n nextLocation,\n historyAction\n })) {\n return blockerKey;\n }\n }\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n function getScrollKey(location, matches) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(location, matches.map(m => convertRouteMatchToUiMatch(m, state.loaderData)));\n return key || location.key;\n }\n return location.key;\n }\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n function _internalSetRoutes(newRoutes) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(newRoutes, mapRouteProperties, undefined, manifest);\n }\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes\n };\n return router;\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\nconst UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let manifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties;\n if (opts != null && opts.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts != null && opts.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = route => ({\n hasErrorBoundary: detectErrorBoundary(route)\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future = _extends({\n v7_relativeSplatPath: false\n }, opts ? opts.future : null);\n let dataRoutes = convertRoutesToDataRoutes(routes, mapRouteProperties, undefined, manifest);\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(request, _temp3) {\n let {\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(request, _temp4) {\n let {\n routeId,\n requestContext\n } = _temp4 === void 0 ? {} : _temp4;\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n let result = await queryImpl(request, location, matches, requestContext, match);\n if (isResponse(result)) {\n return result;\n }\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n if (result.loaderData) {\n var _result$activeDeferre;\n let data = Object.values(result.loaderData)[0];\n if ((_result$activeDeferre = result.activeDeferreds) != null && _result$activeDeferre[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n return undefined;\n }\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n });\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n }\n }\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, {\n type: \"defer-action\"\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error\n };\n }\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null\n };\n }\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n });\n // action status codes take precedence over loader status codes\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null;\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader) && !(routeMatch != null && routeMatch.route.lazy)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader || m.route.lazy);\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null\n };\n }\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, manifest, mapRouteProperties, basename, future.v7_relativeSplatPath, {\n isStaticRequest: true,\n isRouteRequest,\n requestContext\n }))]);\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted: \" + request.method + \" \" + request.url);\n }\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError, activeDeferreds);\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(matchesToLoad.map(match => match.route.id));\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches,\n activeDeferreds: activeDeferreds.size > 0 ? Object.fromEntries(activeDeferreds.entries()) : null\n });\n }\n return {\n dataRoutes,\n query,\n queryRoute\n };\n}\n//#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n return newContext;\n}\nfunction isSubmissionNavigation(opts) {\n return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== undefined);\n}\nfunction normalizeTo(location, matches, basename, prependBasename, to, v7_relativeSplatPath, fromRouteId, relative) {\n let contextualMatches;\n let activeRouteMatch;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n // Resolve the relative path\n let path = resolveTo(to ? to : \".\", getResolveToMatches(contextualMatches, v7_relativeSplatPath), stripBasename(location.pathname, basename) || location.pathname, relative === \"path\");\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n // Add an ?index param for matched index routes if we don't already have one\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch && activeRouteMatch.route.index && !hasNakedIndexQuery(path.search)) {\n path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n }\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n return createPath(path);\n}\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(normalizeFormMethod, isFetcher, path, opts) {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n }\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, {\n type: \"invalid-body\"\n })\n });\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod ? rawFormMethod.toUpperCase() : rawFormMethod.toLowerCase();\n let formAction = stripHashFromPath(path);\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ?\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce((acc, _ref3) => {\n let [name, value] = _ref3;\n return \"\" + acc + name + \"=\" + value + \"\\n\";\n }, \"\") : String(opts.body);\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text\n }\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n try {\n let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined\n }\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n invariant(typeof FormData === \"function\", \"FormData is not available in this environment\");\n let searchParams;\n let formData;\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n let submission = {\n formMethod,\n formAction,\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined\n };\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = \"?\" + searchParams;\n return {\n path: createPath(parsedPath),\n submission\n };\n}\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, isInitialLoad, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, deletedFetchers, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionData, pendingError) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let {\n route\n } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (route.loader == null) {\n return false;\n }\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return state.loaderData[route.id] === undefined && (\n // Don't re-run if the loader ran and threw an error\n !state.errors || state.errors[route.id] === undefined);\n }\n // Always call the loader on new route instances and pending defer cancellations\n if (isNewLoader(state.loaderData, state.matches[index], match) || cancelledDeferredRoutes.some(id => id === match.route.id)) {\n return true;\n }\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n return shouldRevalidateLoader(match, _extends({\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params\n }, submission, {\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n }));\n });\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (isInitialLoad || !matches.some(m => m.route.id === f.routeId) || deletedFetchers.has(key)) {\n return;\n }\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null\n });\n return;\n }\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === undefined) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, _extends({\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params\n }, submission, {\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired\n }));\n }\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController()\n });\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n return arg.defaultShouldRevalidate;\n}\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(route, mapRouteProperties, manifest) {\n if (!route.lazy) {\n return;\n }\n let lazyRoute = await route.lazy();\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue = routeToUpdate[lazyRouteProperty];\n let isPropertyStaticallyDefined = staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n warning(!isPropertyStaticallyDefined, \"Route \\\"\" + routeToUpdate.id + \"\\\" has a static property \\\"\" + lazyRouteProperty + \"\\\" \" + \"defined but its lazy function is also returning a value for this property. \" + (\"The lazy route property \\\"\" + lazyRouteProperty + \"\\\" will be ignored.\"));\n if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n }\n }\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, _extends({}, mapRouteProperties(routeToUpdate), {\n lazy: undefined\n }));\n}\nasync function callLoaderOrAction(type, request, match, matches, manifest, mapRouteProperties, basename, v7_relativeSplatPath, opts) {\n if (opts === void 0) {\n opts = {};\n }\n let resultType;\n let result;\n let onReject;\n let runHandler = handler => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([handler({\n request,\n params: match.params,\n context: opts.requestContext\n }), abortPromise]);\n };\n try {\n let handler = match.route[type];\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch(e => {\n handlerError = e;\n }), loadLazyRouteModule(match.route, mapRouteProperties, manifest)]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return {\n type: ResultType.data,\n data: undefined\n };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname\n });\n } else {\n result = await runHandler(handler);\n }\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n if (isResponse(result)) {\n let status = result.status;\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(new URL(request.url), matches.slice(0, matches.indexOf(match) + 1), basename, true, location, v7_relativeSplatPath);\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\") ? new URL(currentUrl.protocol + location) : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null\n };\n }\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse = {\n type: resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result\n };\n throw queryRouteResponse;\n }\n let data;\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return {\n type: ResultType.error,\n error: e\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers\n };\n }\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n if (isDeferredData(result)) {\n var _result$init, _result$init2;\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: (_result$init = result.init) == null ? void 0 : _result$init.status,\n headers: ((_result$init2 = result.init) == null ? void 0 : _result$init2.headers) && new Headers(result.init.headers)\n };\n }\n return {\n type: ResultType.data,\n data: result\n };\n}\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(history, location, signal, submission) {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType\n } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n if (formEncType === \"application/json\") {\n init.headers = new Headers({\n \"Content-Type\": formEncType\n });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {};\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n errors = errors || {};\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds);\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let {\n key,\n match,\n controller\n } = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index];\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match == null ? void 0 : match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n return {\n loaderData,\n errors\n };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.length === 1 ? routes[0] : routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\nfunction getInternalRouterError(status, _temp5) {\n let {\n pathname,\n routeId,\n method,\n type\n } = _temp5 === void 0 ? {} : _temp5;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n return new ErrorResponseImpl(status || 500, statusText, new Error(errorMessage), true);\n}\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return {\n result,\n idx: i\n };\n }\n }\n}\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\nfunction isHashChangeOnly(a, b) {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\nfunction isDeferredData(value) {\n let deferred = value;\n return deferred && typeof deferred === \"object\" && typeof deferred.data === \"object\" && typeof deferred.subscribe === \"function\" && typeof deferred.cancel === \"function\" && typeof deferred.resolveData === \"function\";\n}\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || obj.type === ResultType.error);\n}\nfunction isValidMethod(method) {\n return validRequestMethods.has(method.toLowerCase());\n}\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method.toLowerCase());\n}\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signals, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(signal, \"Expected an AbortSignal for revalidating fetcher deferred result\");\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n let {\n formMethod,\n formAction,\n formEncType,\n text,\n formData,\n json\n } = navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined\n };\n }\n}\nfunction getLoadingNavigation(location, submission) {\n if (submission) {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n } else {\n let navigation = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined\n };\n return navigation;\n }\n}\nfunction getSubmittingNavigation(location, submission) {\n let navigation = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text\n };\n return navigation;\n}\nfunction getLoadingFetcher(submission, data) {\n if (submission) {\n let fetcher = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data\n };\n return fetcher;\n } else {\n let fetcher = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n let fetcher = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined\n };\n return fetcher;\n}\nfunction getDoneFetcher(data) {\n let fetcher = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data\n };\n return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(TRANSITIONS_STORAGE_KEY);\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n if (transitions.size > 0) {\n let json = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(TRANSITIONS_STORAGE_KEY, JSON.stringify(json));\n } catch (error) {\n warning(false, \"Failed to save applied view transitions in sessionStorage (\" + error + \").\");\n }\n }\n}\n//#endregion\n\nexport { AbortedDeferredError, Action, IDLE_BLOCKER, IDLE_FETCHER, IDLE_NAVIGATION, UNSAFE_DEFERRED_SYMBOL, DeferredData as UNSAFE_DeferredData, ErrorResponseImpl as UNSAFE_ErrorResponseImpl, convertRouteMatchToUiMatch as UNSAFE_convertRouteMatchToUiMatch, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getResolveToMatches as UNSAFE_getResolveToMatches, invariant as UNSAFE_invariant, warning as UNSAFE_warning, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, isDeferredData, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, redirectDocument, resolvePath, resolveTo, stripBasename };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.21.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport * as React from 'react';\nimport { UNSAFE_invariant, joinPaths, matchPath, UNSAFE_getResolveToMatches, UNSAFE_warning, resolveTo, parsePath, matchRoutes, Action, UNSAFE_convertRouteMatchToUiMatch, stripBasename, IDLE_BLOCKER, isRouteErrorResponse, createMemoryHistory, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, redirectDocument, resolvePath } from '@remix-run/router';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\nconst LocationContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false\n});\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\nconst navigateEffectWarning = \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\";\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(cb) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n let {\n isDataRoute\n } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let dataRouterContext = React.useContext(DataRouterContext);\n let {\n basename,\n future,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\");\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname, dataRouterContext]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n future\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getResolveToMatches(matches, future.v7_relativeSplatPath));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nfunction useRoutes(routes, locationArg) {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : UNSAFE_invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n let locationFromContext = useLocation();\n let location;\n if (locationArg) {\n var _parsedLocationArg$pa;\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : UNSAFE_invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(matches == null || matches[matches.length - 1].route.element !== undefined || matches[matches.length - 1].route.Component !== undefined || matches[matches.length - 1].route.lazy !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \" + \"does not have an element or Component. This means it will render an with a \" + \"null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterState, future);\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n let devInfo = null;\n if (process.env.NODE_ENV !== \"production\") {\n console.error(\"Error handled by React Router default ErrorBoundary:\", error);\n devInfo = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"ErrorBoundary\"), \" or\", \" \", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" prop on your route.\"));\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unexpected Application Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, devInfo);\n}\nconst defaultErrorElement = /*#__PURE__*/React.createElement(DefaultErrorComponent, null);\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error\n };\n }\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n render() {\n return this.state.error !== undefined ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n}\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\nfunction _renderMatches(matches, parentMatches, dataRouterState, future) {\n var _dataRouterState2;\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n if (dataRouterState === void 0) {\n dataRouterState = null;\n }\n if (future === void 0) {\n future = null;\n }\n if (matches == null) {\n var _dataRouterState;\n if ((_dataRouterState = dataRouterState) != null && _dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = (_dataRouterState2 = dataRouterState) == null ? void 0 : _dataRouterState2.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, \"Could not find a matching route for errors on route IDs: \" + Object.keys(errors).join(\",\")) : UNSAFE_invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n if (match.route.id) {\n let {\n loaderData,\n errors\n } = dataRouterState;\n let needsToRunLoader = match.route.loader && loaderData[match.route.id] === undefined && (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error;\n let shouldRenderHydrateFallback = false;\n let errorElement = null;\n let hydrateFallbackElement = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\"route-fallback\", false, \"No `HydrateFallback` element provided to render during initial hydration\");\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = /*#__PURE__*/React.createElement(match.route.Component, null);\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches,\n isDataRoute: dataRouterState != null\n },\n children: children\n });\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n revalidation: dataRouterState.revalidation,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches,\n isDataRoute: true\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook = /*#__PURE__*/function (DataRouterHook) {\n DataRouterHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterHook[\"UseNavigateStable\"] = \"useNavigate\";\n return DataRouterHook;\n}(DataRouterHook || {});\nvar DataRouterStateHook = /*#__PURE__*/function (DataRouterStateHook) {\n DataRouterStateHook[\"UseBlocker\"] = \"useBlocker\";\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n DataRouterStateHook[\"UseNavigateStable\"] = \"useNavigate\";\n DataRouterStateHook[\"UseRouteId\"] = \"useRouteId\";\n return DataRouterStateHook;\n}(DataRouterStateHook || {});\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return ctx;\n}\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return state;\n}\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, getDataRouterConsoleError(hookName)) : UNSAFE_invariant(false) : void 0;\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? UNSAFE_invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : UNSAFE_invariant(false) : void 0;\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nfunction useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(() => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n }), [dataRouterContext.router.revalidate, state.revalidation]);\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(m => UNSAFE_convertRouteMatchToUiMatch(m, loaderData)), [matches, loaderData]);\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nfunction useRouteError() {\n var _state$errors;\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nfunction useBlocker(shouldBlock) {\n let {\n router,\n basename\n } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(arg => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let {\n currentLocation,\n nextLocation,\n historyAction\n } = arg;\n return shouldBlock({\n currentLocation: _extends({}, currentLocation, {\n pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n }),\n nextLocation: _extends({}, nextLocation, {\n pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n }),\n historyAction\n });\n }, [basename, shouldBlock]);\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable() {\n let {\n router\n } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(activeRef.current, navigateEffectWarning) : void 0;\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, _extends({\n fromRouteId: id\n }, options));\n }\n }, [router, id]);\n return navigate;\n}\nconst alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(false, message) : void 0;\n }\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router,\n future\n } = _ref;\n let [state, setStateImpl] = React.useState(router.state);\n let {\n v7_startTransition\n } = future || {};\n let setState = React.useCallback(newState => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n }, [setStateImpl, v7_startTransition]);\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n React.useEffect(() => {\n process.env.NODE_ENV !== \"production\" ? UNSAFE_warning(fallbackElement == null || !router.future.v7_partialHydration, \"`` is deprecated when using \" + \"`v7_partialHydration`, use a `HydrateFallback` component instead\") : void 0;\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\";\n let dataRouterContext = React.useMemo(() => ({\n router,\n navigator,\n static: false,\n basename\n }), [router, navigator, basename]);\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a